このリンクまたはボタンをクリックして、jQuery を使用して ajax 呼び出しに接続する必要があります。
http://api.jquery.com/jQuery.ajax/
実行しようとしているクエリを含む php ページを呼び出す必要があります。$message と $replyno が実行前に適切に設定されるように、ajax 呼び出しで引数を渡すこともできます。
<script>
$("#mylink").click(function() {
$data = $("#myform").serialize();
$.ajax({
url: "postquery.php",
data: $data
}).done(function() {
$(this).addClass("done");
});
});
</script>
次に、php ページは次のようになります。
<?php
...
$message = mysql_real_escape_string($_REQUEST['message']);
$replyno = mysql_real_escape_string($_REQUEST['replyno']);
$sql = mysql_query("INSERT INTO wall VALUES('', '$message', '$replyno')");
....
?>
"mysql_real_escape_string" を使用して着信文字列をエスケープすることは、データベースへの SQL インジェクション攻撃を防ぐために常に重要です。
HTML は次のようになります。
<html>
...
<input type="textarea"></input>
<a href="#" id="mylink">Reply</a>
...
</html>
これにより、[返信] をクリックすると、前述の jquery ステートメントがトリガーされます。
これが更新されたコードです。リンク ID を修正し、フォームのシリアル化データも削除しました。これは、テスト コードで必要ないように思われるためです。jQuery ライブラリへの参照も追加しました。
<html>
<head>
<title>Untitled Document</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script language="javascript">
$("#mylink").click(function() {
$.ajax({
url: "test.php"
}).done(function() {
$(this).addClass("done");
});
});
</script>
</head>
<body>
<a href='#' id='mylink'>Reply</a>
</body>
</html>
発生する可能性が高い問題は、フロント エンド コードではなく、クエリが原因です。次のようなデバッグ コードを追加してみてください。
<?php
include("database/db.php");
$sql = mysql_query("INSERT INTO wall VALUES('','','','','','','','1');");
if(!$sql)
{
echo mysql_error();
}
?>
または、サーバーのエラー ログを確認してみてください。