-2

私は Javascript とその多くの優れたライブラリに本当に慣れていないため、最も単純なスクリプトでさえ実行するのが難しいと感じています。

クライアントのウェブサイトを作成するのに強力なので、この言語を学びたいと思っていますが、現在、比較的簡単なことをしようとしています。これは、自分のサイトで個人的なメッセージにフラグを立てることです. 大きなリストには多くのメッセージがあり、ユーザーが「Flag PM」画像をクリックすると、バックグラウンドで flag.php が実行され、MySQL のフラグ フィールドが 0 から 1 に変更されます。

このスクリプトはすべて id という 1 つのフィールドに依存しているため、データベースを介してこれを実行できます。とにかく、これが私のコードです。

flag.php

 require('_inc/_core/core.php'); // inc core_funcs for sql & clean
$pm_id = clean($_POST['p_id']); // create new variable, clean the post
echo "The ID for the PM is " . $pm_id;
mysql_query("UPDATE `messages` SET `flag_status` = 1 WHERE `id` = {$pm_id}"); // update the db

JS/jQuery

     // Flag a Personal Message
$("#flagPM").submit(function(event) {
    event.preventDefault(); 
    $.post("flag.php", { p_id: pm_id } );
    alert(event);
});

フォームを扱う HTML

<form action="#" id="flagPM"><input type="hidden" id="pm_id" value="$id" />
        <input type="submit" class="submit" value="FLAG" /></form>

そのため、投稿したいものを含むpm_idという名前の非表示の入力フィールドがあります。

JavaScript は、flag.php から 2 つ上のディレクトリにある独立したファイルから実行されています。

ありがとうございました

4

1 に答える 1

2

Javascript は、flag.php から 2 つ上のディレクトリにある独立したファイルから実行されています。

その場合、単に行う:

$.post("flag.php", { id: id } );

ファイルに到達しないため、flag.php言及したフォルダー名を含む正しいパスを指定する必要があります。

$.post("folder1/folder2/flag.php", { id: id } );

ところで、$.postどのメッセージが返されるかを知るには、関数のコールバックを使用する必要がありflag.phpます。

$.post("flag.php", { id: id }, function(data){
  alert(data);
} );

から、ajax ハンドラーでその応答を取得できるように、次flag.phpのことを確認してください。echo

// your other code here, such as query, etc
echo 'whatever...';
于 2012-06-09T08:35:09.763 に答える