質問する
623 次
3 に答える
4
クライアント側(JS)で実行されるコードとサーバー側(PHP)で実行されるコードを混同しています。JSはPHPの終了後に実行されるため、フォーム(POST / GET)を送信するか、AJAXを使用しない限り、JSからPHPの関数を「呼び出す」ことはできません。
于 2013-01-16T22:32:58.240 に答える
3
ボタンをクリックするだけでこれを行い、ブラウザを更新またはリダイレクトしない場合は、$.ajax を使用する必要があります。
1) http://api.jquery.com/jQuery.ajax/について読む
2) ボタン onclick="update();" にイベントハンドラを追加します。
3) 次のような ajax を作成します。
function request(variable1,variable2,variable3){
var request = $.ajax({
url: "/server.php", // The address of you php script that will handle the request
type: "POST", // Method type GET / POST in this case POST (Similar to form submission methods....)
data: { // What you send to the server 'VariableName' : VariableValue, in this case you assign the varaiables that were passed to the request function.
'var1': variable1,
'var2' : variable2,
'var3': variable3
},
dataType: "json" // The response type you expect from the server
})
request.done(function(msg) // Function being called when everything is ok and server sends back data
{
console.log(msg) // handle the reply / data
})
request.fail(function(jqXHR, textStatus) // Something went wrong...
{
console.log(textStatus); // See the error report
console.log(jqXHR);
})
request.complete(function(){
console.log("Ajax request complete!"); // This will always be executed when a request has completed even if it failed. (Executes after .done and .fail)
})
}
したがって、ボタンをクリックするたびに呼び出される update 関数内でこれを行うことができます。
function update()
{
var val1 = $.('#selectbox').val();
var val2 = $.('#inputbox').val();
var val3 = $.('#textarea').val();
new request(val1,val2,val3);
}
リクエスト/変数は POST メソッドを使用して送信されるため、php スクリプトでフォームと同じように処理できます。
if(isset($_POST['var1']) && isset($_POST['var2']) && isset($_POST['var3']))
{
$serverReply = doThings($_POST['var1'],$_POST['var2'],$_POST['var3']);
//and this is how you reply to your client/browser in json format
echo json_encode($serverReply);
}
ajax 通信に関する詳細なチュートリアルの詳細を確認してください。ネット上にはたくさんあります。
于 2013-01-16T22:57:28.570 に答える
1
関数javascriptと呼ばれるonclick
関数javascriptはajaxで実装します
例:
$("#submitButtonId").click(function() {
var url = "path/to/your/script.php"; // the script where you handle the form input.
$.ajax({
type: "POST",
url: url,
data: $("#idForm").serialize(), // serializes the form's elements.
success: function(data)
{
alert(data); // show response from the php script.
}
});
return false; // avoid to execute the actual submit of the form.
});
于 2013-01-16T22:33:13.727 に答える