簡體   English   中英

如何使用.serialize()方法通過AJAX請求將表單值發送到PHP

[英]How to use the .serialize() method to send form values to PHP via an AJAX request

我正在使用.serialize()方法來序列化我的表單的值,並在AJAX請求中將它們發送到我的PHP腳本。

我的表格:

<form name="myform" action="" method="post" class="form">
    <input type="text" name="one" value="" />
    <input type="text" name="two" value="" />
    <input type="text" name="three" value="" />
    <input type="submit" name="submit" value="Submit" />
</form>

我的AJAX請求:

$( '.form' ).on( 'submit', function( e ) {

$.ajax({
    type: 'POST',
    url: ajax_url,
    dataType: 'json',
    data: {
        'action': $action,
        'querystr': $( this ).serialize()
    }...

在我的PHP腳本中,我希望能夠做這樣的事情$one = $_REQUEST['one']但是當我這樣做時, $one值為null

為什么$_REQUEST['one']包含my form的輸入字段的值?

在PHP結束

$params = array();
parse_str($_POST['querystr'], $params);
echo $params['one'];

這都是你的ajax電話。 在'data'屬性中,您聲明發送到PHP的post字段。 所以在你的代碼中:

$.ajax({
type: 'POST',
url: ajax_url,
dataType: 'json',
data: {
    'action': $action,
    'querystr': $( this ).serialize()
}

你宣布

 $_POST['action']

,和

 $_POST['querystr'].

這就是為什么$ _POST ['one']為空 - 因為它沒有發送/定義等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM