1

私は PHP を初めて使用し、AJAX を使用したことがありません。Jquery .ajax 関数を使用することにしました。これは、.post 関数よりも多くのカスタマイズがあり、通常の JavaScript よりも簡潔であることが好きだからです。

これがajaxコードです

    $("#upvotearrow").click(function() {
    var dataString="vote=upvote";
    $.ajax({
        type: "POST",
        url: "../secure/process_upvotedownvote.php",
        data: dataString
    })
    .done(function() {
        alert("Upvote registered!");
    });
});

これまでの外部 PHP ファイルは次のとおりです。

include "db_connect.php";
include "functions.php";


    if(isset($_POST['vote']) && !empty($_POST['vote'])) {
        $poemid=7;
        $typeofvote = $_POST['vote'];
        if ($typeofvote=="upvote") {
            if ($insert_stmt = $mysqli->prepare("UPDATE poems SET poem_upvotes=poem_upvotes+1 WHERE poem_id=?")) { //Prepare SQL statement
                $insert_stmt->bind_param('i',$poemid); //Bind parameters
                $insert_stmt->execute();// Execute the prepared query.
            }
        }
   }

変数は問題なく、$mysqliデータベースに入力するだけでクエリが機能するため、ここでの質問は基本的に、AJAX から PHP にデータを適切に転送しているかどうかです。

また、副次的な質問ですが、呼び出す PHP ファイルが、AJAX 呼び出しを行うページの URL から変数にアクセスすることは可能ですか? (IE は URL で、値http://website.com/poem_id=7にアクセスしたいですか?poem_id

4

3 に答える 3

0

db 挿入ファイルでaprint_r($_POST)を実行し、すべての変数が適切な名前で取得されているかどうかを確認します。コードに従って、取得する必要があります。

さらに、通常の URL で行う任意のパラメーターを渡すことができますが、唯一の違いは、AJAX で呼び出されることです。

于 2013-07-05T07:04:29.020 に答える
0

みんな反応ありがとう~

Firebug は外部 PHP ファイルのエラー レポートを表示しないことがわかりましたが、Safari は開発者ツールの XHR ファイルに変数を出力します。

次に、poem_id データを含む非表示の入力フィールドを作成し、それがサーバー側で有効であることを確認してから、スクリプトを実行しました。また、プログラムをスローしていた構文エラーも修正しました。

返信ありがとうございます。Web サイトを作成することで AJAX について多くのことを学んでおり、その信じられないほどの力を活用する方法を学んでいます。

于 2013-07-05T16:43:56.143 に答える
-1

dataString変数の値を変更してみてください
var dataString = {vote:upvote};

于 2013-07-05T06:25:40.217 に答える