2012-09-27 71 views
0

我有這種形式的單選按鈕:發送序列化表單值到PHP

<form> 
    <input type="radio" name="try" value="radio1" checked="checked" id="r1"/> 
    <label for="r1">radio1</label> 

    <input type="radio" name="try" value="radio2" checked="checked" id="r2"/> 
    <label for="r2">radio2</label> 
</form> 

我有這樣的jQuery代碼發送值:

<script> 
function sendValues() { 
    var str = $("form").serialize(); 
    $.ajax({ 
     type: "Get", 
     url: "samepage.php", 
     data: str, 
     succes : function(data) { 
      result = data; 
     } 
    }); 
} 
$(":radio").click(sendValues); 
sendValues(); 
</script> 

使用Firebug我可以本身的代碼返回/ sampage?try = radio1如果我選擇單選按鈕,其值爲radio1。

我再試試這個值發送到一個PHP變量有:

$value = $_GET['try']; 

但回聲$值給出什麼。因此,我的問題是,如何使用jquery向php變量發送serialazed值。

+1

你確定請求發起並正確到達服務器?我看到兩個問題。在代碼中拼寫「成功」是錯誤的。此外,在你的評論中,你說它返回你'/ sampage?try = radio'應該是'/samepage.php?try = radio' – HungryCoder

+0

你確定你的路徑是samepage.php是正確的?我在本地檢查了你的代碼,並且它的工作正常 – Sibu

+0

不,如果請求到達服務器,根本不確定,但正如我在我的問題中所述,我可以在/ firebug中看到/ samepage?try = radio1的響應。我可以使用$(「#somediv」)。text(str);這使radio = radio1路徑只是拼寫錯誤,對此感到遺憾,但這不是問題。 – user1009453

回答

0
<form> 
    <input type="radio" name="try" value="radio1" checked="checked" id="r1"/> 
    <label for="r1">radio1</label> 

    <input type="radio" name="try" value="radio2" checked="checked" id="r2"/> 
    <label for="r2">radio2</label> 
</form> 
<div id="result"></div> 

<script> 
function sendValues() { 
    var str = $("form").serialize(); 
    $.ajax({ 
     type: "Get", 
     url: "samepage.php", 
     data: str, 
     success : function(data) { //syntax error its success 
      $("#result").html(html); 
     } 
    }); 
} 
$(":radio").click(sendValues); 
sendValues(); 
</script> 

而且在samepage.php

echo $value = $_GET['try']; 
+0

不,這不適合我。如果我在提交後導航到samepage.php,我只會收到通知:未定義索引:嘗試。但是,如果我手動輸入http://localhost/samepage.php?try = radio2,則會回顯變量。結論是,通過ajax發送時,$ value不會提取獲取請求。我不明白爲什麼 – user1009453