2017-09-22 19 views
0

AJAXとPHPを使用してHTMLファイルからデータベースから値が返されるのに問題があります。私はheadCode値と5つの場所を持つmysqlデータベースを持っています。 headCodeと1つの場所が使用されます。 headCodeと場所の1つがレコードを処理する場合、PHPは値を返します。 EGのヘッドコード - 1A、場所、ビクトリアは17の値を返します。PHP AJAXデータがHTMLファイルに返されない

私はAjaxを使って作業していましたが、Ajaxは返す価値がありません。 PHPファイルの一番下にあるエコー10は単なるテストのためである

HTMLコード

<script src="\jquery-3.1.0.min.js"></script> 
<script> 
    $(document).ready(function() { 
    $('#submit').click(function(e){ 
     e.preventDefault(); 
     $.ajax({ 
      type:"POST", 
      data:{idheadcode: $('#headcode').val(), idlocation: $('#location').val()}, 
      url: "headcode_Db_connect.php", 
      success: function(data){ 
      $("#content").html(data); 
     } 
    }); 
}); 
}); 
</script> 
</head> 
<body> 
<form name="input"> 
    HeadCode: <input type="text" id="headcode"> 
    End Location:<input type="text" id="location"> 
    <input type="submit" id="submit"> 
</form> 
    <div id="content"></div> 

PHPコード

<?php 
    $headcode = $_POST['headcode']; 
    $location = $_POST['location']; 

    $host="localhost"; // Host name 
    $username="root"; // Mysql username 
    $password="789852"; // Mysql password 
    $db_name="work"; // Database name 
    $tbl_name = "headcodes"; 

    // Connect to server and select database. 
    $link = mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB"); 

    $sql = "SELECT * FROM $tbl_name WHERE headcode= '$headcode'AND (location1= '$location' OR location2 = '$location' OR location3= '$location' OR location4 = '$location' OR location5 = '$location')" ; 
    $result1 = mysql_query($sql, $link); 

    if($result1){ 
     //echo "Successful"; 
    } 
    else { 
     echo "ERROR"; 
    } 
    while ($row = mysql_fetch_assoc($result1)){ 
     $number = $row['number']; 
    } 

$myJson = json_encode ($number); 
echo $number; 
echo "10"; 

?> 

。これは、ファイルがデータを渡していることを証明するHTMLファイルに返されます

+0

を次のように常にエラー報告を有効にする、あなたは時に開発環境で、PDOまたはmysqliの

別のアドバイスを使用して準備された文を学び始める助言しますか?何年も前に廃止され、PHP7で完全に削除されました。このライブラリを使用して新しいコードを書く必要はありません。 SQLインジェクション攻撃(パラメータ化されたクエリのサポートがないため)やパッチが適用されていない他の脆弱性が存在する可能性があります。できるだけ早く 'mysqli'や' PDO'を使うように切り替え、悪意のある入力からデータを保護するためにパラメータ化されたクエリを書く方法を学んでください。リスクの簡単な説明とクエリを安全に書くためのサンプルPHPコードについては、http://bobby-tables.comを参照してください。 whileループブロックの – ADyson

+0

に配列として '$ number'があります。配列をエコーし​​ないでください。致命的なエラー –

+0

"返す値を取得できません"となります。これは比較的曖昧で無意味です。どのようなデバッグ/トレースをしましたか? ajaxコールは正常に完了しましたか(200 OK応答)?エラーメッセージが出ますか?どのようなアウトプットを手に入れますか? PHPコードの流れをトレースしましたか(適切なIDEを持っている場合はデバッグするか、変数のvar_dumpを使って何が起こっているかを表示します)。 – ADyson

答えて

1

あなたの間違ったキーにアクセスしています。

$headcode = $_POST['idheadcode']; 
$location = $_POST['idlocation']; 

廃止予定のmysql拡張機能も使用しないでください。私は、なぜあなたは長い廃止予定の `mysql_`コードライブラリを使用している

error_reporting(E_ALL);//place at the top of the script 
+1

ありがとうございました。私はすぐにやることになるpdoやmysqliを覚える必要があると理解していますが、仕事や資格として学ぶのではなく、このコーディングを楽しむだけです。あなたの助けをありがとう – user2669997

+0

恐ろしい。私の答えは受け入れたものとしてマークしてください – Akintunde007

関連する問題