是否有更好的方法来处理PHP中的表单Tab键顺序?

时间:2010-12-11 21:44:50

标签: php html

有没有更好的方法来处理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;

1 个答案:

答案 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;

// ...

语法参考:

http://php.net/sprintf