2010-12-11 10 views
0

これよりもPHPでフォームタブの順序を扱う良い方法はありますか?これよりもPHPでフォームタブの順序を扱う良い方法はありますか?

私は複数の繰り返しフォームを持つページがあります。レイアウトのために、私はタブ順序を非順列にしたいので、htmlで指定する必要があります(順不同で指定することができます)。私のフォームは限り私が作ることができるように私はそれを実装しましたが、私の実装は厄介なようだブロック

内のPHP変数に算術演算を許可していませんPHPのブロック引用メカニズムを使用して構築されています。私はこれを行うよりエレガントな方法があると考えるのを助けることができません。

まず私は、ページの上部にあるいくつかのPHPの変数を初期化します。

$tab1=1; 
$tab2=2; 
$tab3=3; 
$tab4=5; 
$tab5=4; 

その後、後に、私はこれを行うPHPのループ内...

$tab1+=5; 
$tab2+=5; 
$tab3+=5; 
$tab4+=5; 
$tab5+=5; 

次にブロック引用に変数を追加...

$picshtml .= <<<BLOCK 
<div class="addcomment"> 
    <a href="">Add Comment</a><br /><br /> 

    <div id="commentform$row[photoid]" class="commentform"> 
     <div id="submitanim$row[photoid]" style="display:none"> 
      <img src="loadingAnimation.gif" alt="Processing..." /> 
     </div>  
     <form action=""> 
      <div style="float:left;clear:left;text-align:right"> 
       Comment<br />Name <input type="text" id="name$row[photoid]" tabindex="$tab1" /> <br /> 
       Email <input type="text" id="email$row[photoid]" tabindex="$tab2" /><br /> 
       Website <input type="text" id="website$row[photoid]" tabindex="$tab3" /><br /> 
       <input type="button" value="Submit Comment" id="submit$row[photoid]" onclick="javascript:ajax($row[photoid])" tabindex="$tab4" /> 
      </div> 
      <textarea rows="5" cols="50" id="comment$row[photoid]" tabindex="$tab5" ></textarea> 
     </form> 
    </div> 
</div> 

BLOCK; 
+0

私はこれを編集するためのカルマを持っていた場合、私はあなたを助けるでしょう。コードにバックティック表記法を使用する代わりに、コード行をそれぞれ4つのスペースでインデントしてみてください。 – scoates

+0

それは最終的にハングアップを得た...バックティックのものは右に地獄になります。代わりに、ボタンを使用して4つのスペースを追加しました。 – MrVimes

答えて

1

どうsprintfは?ここ

$html = <<<BLOCK 
... 
<input type="text" tabindex="%d" /> 
... 
BLOCK; 

$order = 0; 

$html = sprintf($html, $order, $order + 1, $order + 2, $order + 3, $order + 4, $order + 5, ...); 

$order += 6; 

// ... 

構文参照:

http://php.net/sprintf

+0

完璧!トリックをしました。ありがとう:) – MrVimes

関連する問題