有没有更好的方法来处理PHP中的表单标签顺序呢?
我有一个包含多个重复表单的页面。由于布局我希望Tab键顺序是非顺序的,所以我必须在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 :(得分: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;
// ...
语法参考: