2015-04-01 64 views
0

所以最近我試圖拉動所有的響應,當你點擊一個按鈕爲了向你展示你放置了什麼。在PHP中的一個方法內部使用下面的代碼行,我嘗試了這個並且傳遞這些信息。至於它不適合我。試圖從表單中提取響應

PHP方法

function results(){ 
    $responses = $_POST['test']; 
    foreach($responses as $response){ 
     print "".$response." <br />"; 
    } 
} 

表單標籤

<form id="test" name="test"> 

BUTTON

<button type="button" onclick="results()"> 
    Complete 
    </button> 
+0

您需要向該PHP代碼發送AJAX請求。 – chris85 2015-04-01 04:36:10

+0

你也可以顯示你的輸入?克里斯是正確的,你不能調用一個按鈕上的onlick屬性的PHP函數。 – Gokigooooks 2015-04-01 04:41:16

回答

0

安置自己的鑰匙將綁定到你爸表單中rameters,而不是形式本身,以便

HTML

<form id="test" name="test"> 
    <input type="text" name="somfield" /> 
    <button type="button" onclick="results()"> Complete </button> 
</form> 

會像

PHP訪問

function results(){ 
    $response = $_POST['someField']; 
} 

所以做你喜歡什麼只是循環POST的所有按鍵

foreach($_POST as $name => $value) { 
    print "$name : $value<br>"; 
} 

應該這樣做。

+0

我理解這個概念,但我仍然沒有得到任何東西顯示。 – John 2015-04-01 04:43:38

+0

再次,onclick屬性只調用javascript函數;不是PHP。 – Gokigooooks 2015-04-01 04:48:32

+0

如果您嘗試以這種方式運行php函數,那麼Gokigooooks是正確的。 php代碼在服務器端執行,所以你必須發送帖子。看看他上面的答案,並注意他是如何將表單發回服務器以使用輸出重新生成頁面。 – TheRk 2015-04-01 05:12:44

0

你不能調用帶有onlick屬性的PHP函數。儘管你可以做這個工作。

if(isset($_POST['submit'])) 
    { 
     function results(){ 
      $somevar = $_POST['sometext']; 

     } 
    } 

,並在你的HTML

<form method="post" action=""> 
    sometext : <input type="text" name="sometext" /> 
    <input type="submit" name="submit" /> 
</form> 

離開你的action屬性留白會讓頁面加載時本身在設置輸入提交提交按鈕。激活isset條件。

and最後,我不知道你是如何做你的輸入,但我看到你使用循環獲取結果。據我所知,沒有html輸入字段有數組輸入。也許你可以做到這一點。

<input type="text" name="response1"> 
<input type="text" name="response2"> 
<input type="text" name="response3"> 
<input type="text" name="response4"> 

並重復這一點。

<? 
    for($i=1;$i>4;$i++) 
    { 

     $response = "response".$i; 
     echo $_POST[$response]; 
    } 
?>