2011-12-07 43 views
1

我希望我的問題很清楚並且有答案。這是我的提交按鈕(不是真實代碼):如何在PHP的下一頁獲取(提交按鈕的名稱)?

while... input type=submit name=$row['ID'] 

當我點擊提交按鈕時,我需要在下一頁獲取它的名字。怎麼樣?

我有不同的提交按鈕,我不知道用戶是否選擇第一,第二,第三或x按鈕。

+0

使用會話或表單在表單中傳遞數據。如何顯示你的真實代碼? – Drewdin

+0

如果你var_dump $ _REQUEST,你會看到那裏的信息。 – Nightwolf

+0

提交表單後,只能從下一頁的GET/POST獲取數據,服務器沒有處理表單的元素類型。 – mahadeb

回答

1

而不是分配一個id到按鈕名稱,使用查詢字符串並提交到your_script.php?id=$row['ID']。然後在下一頁使用$_GET['id']獲取按鈕名稱。

+0

對不起mr.matino ..我認爲你的解決方案會幫助我,但我可以有同樣的例子:選擇一(1)本書(2)asp書(3)jsp書。當用戶點擊php書進入下一頁與php書的ID。選擇顯示爲鏈接或按鈕不是另一個。非常感謝你。 – user1085733

2

如果提交按鈕是包含值的表單的一部分,則可以在下一頁的$ _POST或$ _GET數據數組中訪問它。如果您的腳本不知道提交按鈕的名稱,請循環訪問postdata以查找它。

+0

謝謝你mr.zumi。 :) – user1085733

0

如果你不想改變你的應用程序的設計,你可以做簡單的

foreach ($yourids_used_in_prev_page as $id) 
    { 
    if (isset($_POST[$id])) // or $_GET if your form method="get" 
    { 
     // and you are get it! 
    } 
    } 

這不是一個漂亮的解決方案,但可能適合你

+0

謝謝你先生serdyuk。 – user1085733

1

編輯matino's answer是比較合適的如果它符合你的用例。

如果我理解正確的話,你想/提交下列表格後檢查「the_name」的存在:

<form method="post"> 
    <input name="the_name" type="submit"> 
</form> 

現在,所有POST'ed數據在PHP的超全局$_POST可用但是PHP無法知道哪部分數據是提交按鈕。

周圍有此兩種可能的途徑:

  • 如果你已經知道這個名字,你可以用isset($_POST['the_name'])檢查它的存在 - 這會告訴你,如果用戶通過點擊the_name提交按鈕提交表單(然而,如果命中enter,該變量將不存在)。
  • 如果您可以更改HTML,您可以通過將所有提交元素名稱更改爲例如submit[the_name]來使用下標 - 這樣您可以通過查看array_keys($_POST['submit'])[0]找到按下的提交按鈕的名稱。
+0

我即將發佈您的第二個解決方案。 – Mike

+0

非常感謝你mr.connec – user1085733

4

根據您的評論,您實際上需要確定是否按下了按鈕。檢查下面的例子。

下面是一個簡單的形式與用戶名輸入和三個按鈕,該用戶名進行的各種動作:

<form action="next_page.php" method="post"> 
    <input type="text" name="myname" /> 
    <input type="submit" name="get_myname" value="Give my name back" /> 
    <input type="submit" name="rand_name" value="I will give you some name" /> 
    <input type="submit" name="color_name" value="Your name as a rainbow" /> 
</form> 

一旦submit一個按鈕被按下時,我們去next_page.php並檢查它是哪一個,並基於此執行操作。

<?php 
    //this is next_page.php 
    if (isset($_POST['get_myname'])) { 
    //echo user's name to screen 

    } elseif (isset($_POST['rand_name'])) { 
    //echo a random name 

    } elseif (isset($_POST['color_name'])) { 
    //change every letter to a different colour 

    } else { 
    //nothing to do here, just nice to have a comment letting you know 
    } 
?> 
+0

謝謝你mr.MattCan,當我知道按鈕的名字時,你的例子是真的,但在我的問題中,我不知道從數據庫中得到的名字是作爲提交按鈕!所以我需要什麼?在下一頁獲取submited按鈕的名稱。再次感謝你,總是:)。 – user1085733

相關問題