0

.ajax()を使用する場合、jQuery はフォーム変数または http POST アクションを渡していないようです。

var_dump ( $_POST ); の実行 空の配列になります。

提案?私は何を間違えたのでしょうか....それは単純な概念です-誰かが同様のQを投稿しましたが、誰も応答しませんでした.彼の解決策はフォームにIDを追加することでした.

現在、私はfirebugでリターンページのコンテンツを表示しています.サーバーにデータを取得できないため、まだ何もしていません...(最初に最初に).

私のHTML

<script type="text/javascript">
$( document ).ready( function(){
    $( "#myform" ).submit( function () {
        $.ajax({
            type: "POST",
            dataType: "html",
            cache: false,
            url: "x.php",
            success: function( data ){              
                //...tell user there was success...
            },
            error: function( data ){
                //...tell user thre was a problem...
            }
        });
        return false;
    });     
});
</script>

<form name="myform" id="myform" action="" method="POST">
    <label for="name" id="name_label">x: </label>
    <input type="text" name="x" id="x" size="30" value=""/> 
    <input type="submit" name="submit" value="Submit"> 
</form>
<div id="results"><div>

そして、これが(x.php)PHPコードです-非常に単純な概念実証...

<?php
var_dump( $_GET );
var_dump( $_POST );
var_dump( $_REQUEST );
?>

応答は次のようになります

array(0) {}
array(0) {}
array(1) {
  ["PHPSESSID"]=>
  string(26) "e1j18j..."
}
4

3 に答える 3

5

dataajax 呼び出しで投稿を渡さなかった場合は、試してください

    $.ajax({
        type: "POST",
        dataType: "html",
        cache: false,
        url: "x.php",
        data: $(this).serialize(),
        success: function( data ){              
            //...tell user there was success...
        },
        error: function( data ){
            //...tell user thre was a problem...
        }
    });
于 2013-01-24T06:33:47.767 に答える
1

フォームをシリアル化する必要があります。

    $.ajax({
        type: "POST",
        data: $(this).serialize(),
        cache: false,
        url: "x.php",
        success: function( data ){              
            //...tell user there was success...
        },
        error: function( data ){
            //...tell user thre was a problem...
        }
    });

がないdataと、POST リクエストで何も送信されません。

于 2013-01-24T06:33:52.947 に答える
0

あなたはこのようにそれを行うことができます

$(document).ready(function(){
   $( "#myform" ).submit( function () {
       $.ajax({
         type:'POST',
         data:'xname='+$("#x").val(),
         url:'SOMETHING.php',
         success:function(data){
           //Do something with the returned data
         }
       });
   });
});

そしてphpファイルで

echo $_POSST['xname'];

お役に立てれば

于 2013-01-24T06:43:21.070 に答える