2014-04-09 77 views
-1

讓我們假設一個頁面有一堆由某種PHP循環生成的提交按鈕。他們在循環值命名,所以結果會是這個樣子:動態生成的提交按鈕,哪一個被點擊?

<input type="submit" name="0" id="0" value="click me"> 
<input type="submit" name="1" id="1" value="click me"> 

比方說,有可能是零,這些按鈕的一個極大之間的任何地方。假設表單是POST,我將如何識別在之後加載的頁面上哪個按鈕被點擊了?

+2

你可以知道哪個被點擊,因爲'$ _POST ['button_name_attribute']'將被設置。 – Mike

+1

您應該提供更多信息來解釋您實際嘗試實現的內容。使用數組作爲名稱比使用數字更好。 – Mike

+0

這就是我通常會檢查按鈕是否被點擊的方式,但在這種情況下,我不知道在編寫代碼時按鈕名稱是什麼。例如,假設有22個按鈕生成,命名爲數字0-21。如果單擊了名爲「17」的那個,我將不得不使用類似if(isset($ _ POST [「17」]))'的代碼。假設,如果有800萬個按鈕呢?您是否需要爲$ _POST寫出800萬支票,看看是否所有這些支票都被點擊了? –

回答

2

正如我在上面的評論中提到,你會更好地使用在HTML的數組:做

<form action="" method="post"> 
<?php 
for ($i = 0; $i < 100 ; $i++) { 
    echo '<input type="submit" name="clicked['.$i.']" value="clicked" />'; 
} 
?> 
</form> 

然後在你的PHP,你可以得到的點擊輸入:

echo key($_POST['clicked']); // Prints, for example, 28 
+0

好主意,我從來沒有在之前的提交中使用數組。 – Devon