2017-06-14 14 views
0

私はajax経由でPHPに入力値を送信しようとしていますが、私はこの権利を得ることはできません。私は、ユーザー入力に基づいてデータテーブルを作成しようとしています。ajax経由でPHPに変数を送信

これは私のコードです:私はJSの多くを知らない

<?php 
    $conn = pg_connect(...); 
$id1 = $_POST["id1"]; 
    $result = pg_query_params($conn, 'SELECT * FROM t WHERE id1 = $1 LIMIT 20', array($id1)); 
    while($fetch = pg_fetch_row($result)) { 
     $output[] = array ($fetch[0],$fetch[1],$fetch[2],$fetch[3],$fetch[4],$fetch[5],$fetch[6],$fetch[7]); 
    } 
    echo json_encode($output); 
?> 

しかし:

<input class="form-control" id="id1" type="text" name="id1">

私のjavascriptのコード:

<script type="text/javascript"> 
$(document).ready(function() { 

var oTable = $('#jsontable').dataTable(); //Initialize the datatable 

    $('#load').on('click',function(){ 
     var user = $(this).attr('id'); 
     if(user != '') 
     { 
     $.ajax({ 
      url: 'response.php?method=fetchdata', 
      data: {url: $('#id1').val()}, 
      dataType: 'json', 
      success: function(s){ 
      console.log(s); 
        oTable.fnClearTable(); 
         for(var i = 0; i < s.length; i++) { 
         oTable.fnAddData([ 
            s[i][0], 
            s[i][1], 
            s[i][2], 
            s[i][3], 
            s[i][4], 
            s[i][5], 
            s[i][6], 
            s[i][7] 
              ]);          
             } // End For 

      }, 
      error: function(e){ 
       console.log(e.responseText); 
      } 
      }); 
     } 
    }); 
}); 
</script> 

私のPHPスクリプト私のPHPは正しいです私はそれをテストします。だから私は問題は、JavaScriptコードにあると思います。 問題は、私のデータテーブルがユーザ入力に基づいて作成されていないことです。 ありがとうございました!

+1

を、しかし、あなたはPOSTリクエストを送信していない、あなたは '持っている必要がありますタイプ:'「ポスト」そのため、あなたは 'id1'ではなく' url'という名前のデータを送信しています –

+1

「うまくいきません」についての詳細を教えてください。ところで、Ajaxコールでは「メソッド」を設定しません。デフォルトのデータは$ _POSTではなく$ _GETに送られます。 [JQueryのドキュメントを参照](http://api.jquery.com/jquery.ajax/) – Debflav

+0

...おそらくあなたは '$(document).ready('(etc)isn技術的にJavaScriptを使っているのではないでしょうか... ... – CD001

答えて

0

変化に

data: {url: $('#id1').val()}, 

type: 'POST', 
data: {id1: $('#id1').val()}, 

問題が大きくなるかもしれませんが。 PHPから正しいデータが得られていない可能性があります。あなたはこのように、あなたのajax()コールにerrorオプションを追加することにより、デバッグすることができます。

$.ajax({ 
    url: 'response.php?method=fetchdata', 
    type: 'POST', 
    data: {id1: $('#id1').val()}, 
    dataType: 'json', 
    success: function(s){ 
    }, 
    error: function (xhr, status, errorThrown) { 
     console.log(xhr.status); 
     console.log(xhr.responseText); 
    } 
}); 

次に出力のために、ブラウザのコンソールをチェックし、これはあなたにPHPから来るエラーメッセージのいくつかの種類を与える必要があります。

dataType: 'json'を使用しているため、ajaxリクエストではJSONヘッダーが返されると予想されますが、PHPはHTML /テキストを送信しています。あなたのJSONエコー前に、正しいヘッダを追加、修正するには:あなたが正確に動作していないものを言及していない

header('Content-Type: application/json'); 
echo json_encode($output); 
+0

まだ動作していません。どうすればjsでdebbugできますか? – 1pa

+0

私の回答を更新しました – CodeGodie

+0

それは本当にありがとう!! – 1pa

関連する問題