2011-04-05 37 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']

相關問題