2017-01-14 15 views
2

以下のコードは機能していません。アラートが表示されますが、表示されません。私のHTMLフォームのボタンは、以下の機能である属性onclick="doPost()"がありますjQuery AJAXポストアラート()が呼び出されていない

function doPost() { 
    if (allFieldsValid()) { 
     var data1 = $('#data1').val(); 
     var data2 = $('#data2').val(); 
     var data3 = $('#data3').val(); 
     var data4 = $('#data4').val(); 

     var data5 = localStorage.getItem('data5'); 
     var data6 = localStorage.getItem('data6'); 

     var post_data = { d1: data1, d2: data2, d3: data3, d4: data4, d5: data5, d6: data6 }; 

     //console.log(post_data) always displays the data with no nulls. 

     $('#myForm').submit(function(e)) { 
      $.ajax({ 
       type: 'post', 
       url: 'http://localhost/myphpfilelocation.php', 
       data: post_data, 
       cache: false, 
       success: function(response) { 
        alert(response); 
       }, 
       error: function(response) { 
        alert(response); 
       } 
      }); 
      e.preventDefault(); 
     }  
    } else { 
     alert('Fields are not valid'); 
    } 
} 

私のPHPコードは、それが取得するデータを表示するためにechoを使用しています。

<?php 
    $data1 = $_POST[ 'd1' ]; 
    $data2 = $_POST[ 'd2' ]; 
    $data3 = $_POST[ 'd3' ]; 
    $data4 = $_POST[ 'd4' ]; 
    $data5 = $_POST[ 'd5' ]; 
    $data6 = $_POST[ 'd6' ]; 

    echo($data1. ' '.$data2. ' '.$data3. ' '.$data3. ' '.$data4. ' '.$data5. ' '.$data6); 
?> 

alert()を私のスクリプトでもないショーを行いますアップ。

私のすべてのHTMLフォーム入力は、正しいID(('#data1')など)を持っています。

答えて

1

JSON.stringify()メソッドを使用する必要があります。

JSON.stringify関数はJavascriptオブジェクトをJSONテキストに変換し、 は文字列に格納します。

また、contentTypeは送信するデータのタイプであるため、application/jsonです。

これを試してください:あなたのphpファイルで

$.ajax({ 
     type: 'post', 
     url: 'http://localhost/myphpfilelocation.php', 
     data: JSON.stringify(post_data), 
     contentType:'application/json', 
     cache: false, 
     success: function(response) { 
      alert(response); 
     }, 
     error: function(response) { 
      alert(response); 
     } 
}); 

、あなたはjson_decode機能を使用して、jsonオブジェクトをデコードする必要があります。

関連する問題