ユーザがWebページのボタンをクリックすると、サーバ上のファイルを編集しようとしています。私はPHPのボタンを使用してテーブルを生成します。 STRING1、STRING2、BOOLは私の関数に渡す変数です。私が作成したeditPlist()関数が呼び出され、テスト警告()が表示されます。問題は、PHPファイルが実行されることです。私もエラーはありません。何が間違っているのかわからない。AJAXを使用してPHPファイルを実行し、パラメータを送信する
サンプルHTMLボタン:
<a href="#" onclick="editPlist('STRING1', 'STRING2', 'BOOL')" class="buttong">1 : Round 1</a>
ボタンのクリックは、このスクリプトを実行します:
<script type='text/javascript'>
function editPlist(stage, dance, oldValue)
{
alert('test ' + stage + dance + oldValue);
$.ajax({
type: "POST",
url: <?php echo '"'.dirname(curPageURL()).'/PlistEditorFunction.php"' ?>,
data: {"var1" : stage , "var2" : dance , "var3" : oldValue},
success: function(msg){
alert("Data Saved: " + msg); //Anything you want
}
});
}
(URL行にPHPは、私が実行したいファイルのアドレスを生成します。)
外部PHPファイルPlistEditorFunction.phpで、私は偽のエラーをログに記録し、変数を読み込もうとしますが、エラーは表示されません。これは、PHPファイルの先頭である:
$msg = 'test error message';
error_log('['.date("F j, Y, g:i a e O").']'.$msg."<br /> \n", 3, $phperrorPath);
if (isset($_POST['data']) and trim($_POST['data']) != '') {
$stage = trim($_POST['var1']);
$dance = trim($_POST['var2'])
$oldValue = trim($_POST['var3']);
}
私はドメイン名がアヤックスから実行されているファイルに一致する場合、PHPスクリプトのみが実行されることを知っています。 2つのファイルは互いに隣り合っているので、私はこれが問題ではないことを知っています。
私はこれを修正するために何ができますか?
ChromeデベロッパーツールやFirebugであなたのajaxリクエストを見ていますか?あなたは、あなたのajaxリクエストが正しく送信されていることを確認し、そのような方法で完全な応答を見ることができます。 Chromeを使用して開発者ツールを開き、ネットワークペインに移動します。次に、yor Webページのボタンをクリックして、ネットワークペインの新しいエントリを監視します。 – mwotton
ありがとうございます、このスクリプトは正しく機能し、正しく更新されます。 –