0

次のコードを使用して、mysql データベースにクエリを送信できます。

$sql = mysql_query("INSERT INTO wall VALUES('', '$message', '$replyno')");

私の質問は、テキストをクリックするだけでクエリを送信する方法はありますか?

例を見てみましょう:テキスト名 Reply があります。この返信テキストをクリックすると、mysql データベース フィールド値 (フィールド名: Reply、タイプ: int ) が 1 増加します。

申し訳ありませんが、JAVASCRIPT/AJAX についてはわかりません:(

@DEVELOPER への最終アップデータ コード:

<html>
<head>
<title>Untitled Document</title>
</head>
<script language="javascript">
$("#mylink").click(function() {
$.ajax({
url: "test.php"
}).done(function() { 
$(this).addClass("done");
});
});
</script>
<body>
echo "<a href='#' id='mylink'>Reply</a>";
</body>
</html>
Php page:
<?php
include("database/db.php");
$sql = mysql_query("INSERT INTO wall VALUES('','','','','','','','1');");
?>
4

3 に答える 3

1

このリンクまたはボタンをクリックして、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();
}
?>

または、サーバーのエラー ログを確認してみてください。

于 2012-05-21T05:47:10.227 に答える
0
$sql = mysql_query("INSERT INTO wall VALUES('', '$message', '$replyno')");

次のようにjqueryとajaxを使用する必要があります:-

<script type="text/javascript">
    $j(document).ready(function() {
        $j('#reply').click(function(){

    jQuery.ajax({
                url: "test.php", //Your url detail
                type: 'POST' ,
                data: ,
                success: function(response){
   }
  });
 });
});
</script>
于 2012-05-21T05:52:41.727 に答える
0

ファイル「updat_post.php」に次のように記述します。

If(isset($_GET['visit_post']))
     $pdo->query('update posts set counter = counter+1');

ドキュメント準備完了の js/jquery ファイルに次のように記述します。

$('#mybutton').click(function() {
    $.post('update_post.php', {visit_post: true});
});
于 2012-05-21T06:25:11.270 に答える