2011-08-04 16 views
0

URLにデータを投稿するためにXMLHttpRequest()を使用しようとしています。 は、私は次のJavaScriptを書いた:javascript関数にphp変数を渡すエラー:missing)引数リストの後

function makePostRequest(url, params) { 
var httpRequest = new XMLHttpRequest(); 
httpRequest.open("POST", url, true); 
//Send the proper header information along with the request 
httpRequest.setRequestHeader("Content-type", "application/json"); 

httpRequest.onreadystatechange = function() {//Call a function when the state changes. 
    if(httpRequest.readyState == 4 && httpRequest.status == 200) { 
     alert(httpRequest.responseText); 
    } 
} 
httpRequest.send(params);} 

、私は別の掲示されるJSONデータであり、1がURLで、PHPファイルで、この関数に2つのPHPの変数を渡す必要があります。私は、コードの2番目のブロックは、転写エラーを持っていることを前提とし、「$ encoded_pa​​rams」PHPの変数があることだ

missing) after argument list 
+0

を簡素化され、それはあなたの行番号を教えてくれありませんか? – Ibu

+1

"引数リストの後に欠落しています)"は、JavaScriptエラーのようですが、このエラーが発生した場所(Firebugまたは同様のツールを使用)を見つけてください。スクリプトで返されたJSON文字列も投稿してください。 – feeela

+1

'$ encoded_pa​​rams'はどこに定義されていますか?' $ json_str'はどこに使われますか? –

答えて

0

を行い、私が提案するものです。コードをクリーンアップするには、のは、組み込みのonclickを削除してみましょうし、それにIDを与える:

$editpage->editFormTextTop = "<input type='button' id="requestBtn" />"; 

は、今すぐあなたのスクリプトの頭の中であなたは値を初期化することができます。

注:このコードは

<script> 
window.onload = function() { 
    var url = "http://www.hello.com"; 
    var jsonString = "{\"format\": \"json\",\"event\": \"revert\",\"api_key\": \"<?php echo $wgAPIKey ?>\"}"; 
    // now we can assign the function to the button 
    document.getElementById("requestBtn").onclick = function() { 
     makePostRequest(url,json_string); 
    } 
} 
</script> 
0

$url = "http://www.hello.com"; 
$json_str = "{\"format\": \"json\", 
      \"event\": \"revert\", 
     \"api_key\": \"$wgAPIKey\"}"; 

$editpage->editFormTextTop = 
      "<input type='button'value='hello' onclick='makePostRequest(\"$url\", \"$json_str\")' />"; 

は、実行した後、私は放火犯から、次のエラーを得ました"$ json_str"とします。その変数はその<input>要素のHTMLに展開されている場合、入力要素は次のようになりますので、その中に二重引用符文字は、エラーになります:

<input type='button'value='hello' onclick='makePostRequest("http://www.hello.com", "{"format": "json", "event": "revert", "api_key": "something"}")' /> 

)「makePostRequest(にどのようにその呼び出しを参照してください。 "うんざりしていますか?独自の埋め込み二重引用符を含む "encoded_pa​​rams"文字列は、不正な文字列定数になります。

+0

申し訳ありませんが、$ encoded_pa​​ramsはありません。あなたは正しいです、それは$ json_strでなければなりません。 – tommycat

+0

どのようにそれを解決するには?私はjson形式でデータを送信する必要があります – tommycat

0

あなたのタイトルと内容のテキストが一致しません。あなたはJavaScriptにPHP変数を渡したい場合は、単にここで

var yourvar = '<?php echo $your_php_var; ?>';

関連する問題