HTML フォームから PHP ファイルに情報を送信するための次の Ajax コードがあります。
$(document).ready(function(){
$('#txt').load( '../../do_comment.php' );
});
$(function(){
$("#submit").click(function(e) {
e.preventDefault();
var name = $("#user_name").val();
var comment = $("#user_comment").val();
var ID = '2'; //must change for each post
$.ajax({
type: "POST",
url: "../../do_comment.php",
data: {user_name:name, user_comment:comment, ID:ID},
success: function(){
$('#txt').load( '../../do_comment.php' );
},
error:function(e){alert("it failed");}
});
});
});
私の PHP ファイルでは、次のように変数を宣言します。
$name = $_POST[user_name];
$comment = $_POST[user_comment];
$ID = $_POST[ID];
そして、これをデータベースに正しく入力します:
if($_POST[user_comment] != Null) {
$sql = "INSERT INTO $table_name (post_ID, user_name, comments)
VALUES ('$ID','$name', '$comment')";
$result = @mysql_query($sql,$connection) or die(mysql_error());
}
問題は、どの変数もどのような値もエコーしないことです。データベースにクエリを実行しようとすると、変数を使用する代わりに ID 値をハードコーディングした場合にのみ機能します。
$data = mysql_query("SELECT * FROM $table_name WHERE post_ID =
'".mysql_real_escape_string($ID)."'") or
die(mysql_error());