2012-05-04 20 views
0

ユーザが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つのファイルは互いに隣り合っているので、私はこれが問題ではないことを知っています。

私はこれを修正するために何ができますか?

+2

ChromeデベロッパーツールやFirebugであなたのajaxリクエストを見ていますか?あなたは、あなたのajaxリクエストが正しく送信されていることを確認し、そのような方法で完全な応答を見ることができます。 Chromeを使用して開発者ツールを開き、ネットワークペインに移動します。次に、yor Webページのボタンをクリックして、ネットワークペインの新しいエントリを監視します。 – mwotton

+0

ありがとうございます、このスクリプトは正しく機能し、正しく更新されます。 –

答えて

0

における応答のparamになり、私はアヤックスが未定義だったことを考え出しました。 jQueryがインポートされたので、問題は解決されませんでした。私は$ .ajaxをjquery.ajaxに変更しなければならないという答えを見つけました。

jQueryを表すのに "$"を使用しないホストもあります。私のウェブホストは代わりに "jquery"を使用します。

1

変更

url: 'PlistEditorFunction.php' 

にこのライン

url: <?php echo '"'.dirname(curPageURL()).'/PlistEditorFunction.php"' ?> 

、それは

0

いくつかの物事が奇妙に見える動作するかどうかを確認。

あなたが電話しているURLが実際にあなたの考えであることを確認してください。これを行うには、コンソール/インスペクタを使用します。私は火かき棒をお勧めします。 ajaxを呼び出すと、リクエストしているページのURLがajaxで表示されます。

正しい場合は、あなたのurlパラメータは問題ではありません。次に、私はPHPファイルそのものを見るでしょう。あなたのajaxレスポンスが実行されていることを確認できるように、phpファイルにecho文を投げてください。あなたがファイルにエコーどんなPlistEditorFunction.phpが成功機能mwottonさんのコメントの後

success: function(response) { 
    console.log(response); //should be the echo'd statement of PlistEditorFunction.php 
} 
関連する問題