1

こんにちは、jQuery ajax を使用して複数のデータを php ファイルに投稿したいのですが、関数を実行すると何も返されず、php もデータを取得しません。

私の関数は次のようになります。

function sendForm(){
  jQuery.ajax({
   url: <?php echo $path; //this the url where the php file is ?>,
   type: 'POST',
   data: {
    addressOne: jQuery('#Form #table .key :input').serialize(),
    addressTwo: jQuery('#Form #table_2 .key :input').serialize(),
    additionalData: jQuery('#Form #More :input').serialize(),
    preloaded: <?php echo serialize($array); ?>,
    action: 'sendIt'
   },
   async: false,
   cache: false,
   success: function(data){
     alert(data); //or console.log(data);
   }
  });
}

そしてphpで私はこのようなことをします:

<?php
function handleData() {
  parse_str($_POST['addressOne'], $arrayOne);
  parse_str($_POST['addressTwo'], $arrayTwo);
  parse_str($_POST['additionalData'], $arrayThree);
  $preloaded = unserialise($_POST['preloaded']);
  //than do some stuf here for example print_r all...
}

if(isset($_POST['action']) && !empty($_POST['action'])) {
    $action = $_POST['action'];
    switch($action) {
        case 'sendIt' : handleData();
        break;
        //etc...
    }
}
?>

私は何が間違っているのか分かりませんか?複数のデータを投稿するより良い方法はありますか?

フォーム全体をシリアル化し、シリアル化されたphp配列を投稿しないように1つのデータのみを使用すると、正常に動作しますが、この4つの個別のデータを使用したいと思います。

4

2 に答える 2

2

ajaxクエリのタイプを間違えurlましたulr

Web Developerのようなブラウザ用のプラグインを使用することを検討してください。エラーが検出され、ここで質問する必要はなかったと確信しています。

編集: それでも問題が解決しない場合は、何らかの理由で送信しようとしているデータを検証し、ブラウザーから手動で移動してalert、スクリプトが目的の処理を行っていることを検証します。 re notなど...すべてを検証するphpsuccessasync

于 2012-11-27T17:21:16.297 に答える
1

ajax 関数にタイプミスがあります。

 url: <?php echo $path; ?>, //needs to be url, not ulr

serializeまた、テキスト フィールドの値も必要ありません。これだけやって、

jQuery.ajax({
url: <?php echo $path; //this the url where the php file is ?>,
type: 'POST',
data: {
addressOne: $('#Form #table .key :input').val(),
addressTwo: $('#Form #table_2 .key :input').val(),
additionalData: $('#Form #More :input').val(),
preloaded: <?php echo serialize($array); ?>,
action: 'sendIt'
 },
async: false,
cache: false,
success: function(data){
alert(data); //or console.log(data);
 }
});
于 2012-11-27T17:20:47.437 に答える