2011-04-05 85 views
1

我有一个有3个提交按钮的表单。他们的名字是在一个循环中生成和分配的。现在,如果我使用post方法,如何访问被点击的提交按钮的名称。我可以在另一个表单中获得提交按钮的名称吗?

以下是我的代码的例子:

**one.php** 

    <form name="one" method="post" action="two.php"> 

    <?php 
    while($i=1;$i<=3;$i=$+1) 
    { 
    ?> 
    <button type="submit" name="<?php echo $i ?>" value="<?php echo $i ?>" > 
    </button> 
    <?php 
    } 
    ?> 

    </form> 

**two.php** 

    { 
    code??????? 
    } 

也许我可以用onsubmit属性为one.php按钮标签,但我无法得到输出。有什么建议么?

回答

4

你可以查一下$_POST是否存在与您的三个按钮中的每一个名字的条目:

for ($i=1 ; $i<=3 ; $i++) { 
    if (isset($_POST[$i])) { 
     // here, you are on the clicked button 
    } 
} 


注意,我建议你提供更好的名字(即唐”吨,数字开头)到您的按钮 - 这意味着你的生成形式是这样的:

<?php for ($i=1 ; $i<=3 ; $i++) { ?> 
<button type="submit" name="button_<?php echo $i ?>" value="<?php echo $i ?>" > 
</button> 
<?php } ?> 

而且,在表单的提交,使用这样的事情:

for ($i=1 ; $i<=3 ; $i++) { 
    if (isset($_POST['button_' . $i])) { 
     // here, you are on the clicked button 
    } 
} 


BTW:你while循环的语法不正确 - 看来你混了whilefor ;-)

+1

that w除了IE以外的其他应用程序。 IE(至少版本6及以下版本,我没有尝试过任何更新的版本)将具有为所有按钮设置的值,而不管它们是否被点击。几乎就像使用隐藏的输入。 – Cfreak 2011-04-05 17:43:13

1

产生另一个输入元素

<input type="hidden" name="buttonId" value="<?php echo $i ?>" /> 

而且然后得到你的身份证$_REQUEST['buttonId']

相关问题