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ファイルに返されます
を次のように常にエラー報告を有効にする、あなたは時に開発環境で、PDOまたはmysqliの
別のアドバイスを使用して準備された文を学び始める助言しますか?何年も前に廃止され、PHP7で完全に削除されました。このライブラリを使用して新しいコードを書く必要はありません。 SQLインジェクション攻撃(パラメータ化されたクエリのサポートがないため)やパッチが適用されていない他の脆弱性が存在する可能性があります。できるだけ早く 'mysqli'や' PDO'を使うように切り替え、悪意のある入力からデータを保護するためにパラメータ化されたクエリを書く方法を学んでください。リスクの簡単な説明とクエリを安全に書くためのサンプルPHPコードについては、http://bobby-tables.comを参照してください。 whileループブロックの – ADyson
に配列として '$ number'があります。配列をエコーしないでください。致命的なエラー –
"返す値を取得できません"となります。これは比較的曖昧で無意味です。どのようなデバッグ/トレースをしましたか? ajaxコールは正常に完了しましたか(200 OK応答)?エラーメッセージが出ますか?どのようなアウトプットを手に入れますか? PHPコードの流れをトレースしましたか(適切なIDEを持っている場合はデバッグするか、変数のvar_dumpを使って何が起こっているかを表示します)。 – ADyson