2017-01-08 110 views
0

我有一個表格,我試圖通過AJAX提交。我傳遞數據的最簡單方法是使用$("#myForm").serialize(),但是,如果這樣做,我發佈到的頁面不會收到數據。

這裏是我的形式:

<form id="myForm"> 
    <input name="field" id="field"> 
    <button id="submitBtn" type="button"> 
</form> 

這是我的函數:

$("#submitBtn").click(function(){ 

    alert($("#myForm").serialize()) //For testing – does alert "field=value" 

    var post = $.post("actions.php", $("#myForm").serialize()); 
    post.done(function(d){alert(d)}); //Only alerts [PHPSESSID] 

    var post = $.post("actions.php", {field:"fieldVal"}); 
    post.done(function(d){alert(d)}); //Alerts [PHPSESSID] and ['field'] 

}); 

這是我的整個actions.php文件:

<?php 
print_r($_REQUEST); 
exit(); 

爲什麼傳遞值JSON工作但.serialize()不是??

+0

post.done()的回調函數有多個參數... – dandavis

+0

您還需要對輸入值=「」http://stackoverflow.com/questions/5075778/how-do-i-modify-serialized-form-data-in-jquery/5075798#5075798 – mplungjan

+0

@dandavis是的,但我只是需要證明如果值被張貼或不是所以我只需要第一個 –

回答

0

看起來像我不得不通過序列化形式作爲變量,而不是其序列的$.post()函數內的。因爲如此:

var postData = $("#myForm").serialize() 

var post = $.post("actions.php", postData); 
post.done(function(d){alert(d)}); 

不確定爲什麼它在外部建立而不是在函數內部工作,可能是衝突問題。無論如何,感謝大家

+0

沒有理由,這應該工作任何不同於在問題 – charlietfl