私は以前にAjax呼び出しを行ってJSONオブジェクトを返すようにしましたが、うまく動作しません。PHP JSONオブジェクトをJavascriptに戻します。[AJAX CALL]が動作しません。
は、これは私のAJAX呼び出しです:
function sendContactForm() {
var nameInput = $('#nameInput').val();
var emailInput = $('#emailInput').val();
var subjectInput = $('#subjectInput').val();
var msgInput = $('#msgInput').val();
$.ajax({
// Make a POST request to getfile
url: "/service/contactmail",
data: {
nameInput: nameInput,
emailInput: emailInput,
subjectInput: subjectInput,
msgInput: msgInput
},
method: "post",
// And run this on success
success: function (data) {
if (data.send === 1){
// VERZONDEN
}else if(data.send === 2){
// VARS NIET INGEVULT
}else{
// IETS ANDERS FOUT
}
console.log(data);
},
error: function() {
alert("fout");
}
});
}
と、これは私のPHPの関数である: ""(空の文字列)があり :
private function sendContactForm() {
$output = array(
"test" => null,
"send" => null
);
if ($this->fillVariables()) {
$this->sendMail();
$output['send'] = 1;
return true;
} else {
$output['send'] = 2;
return false;
}
header("Content-Type: application/json");
echo json_encode($output);
}
が、変数 "データ" の値を持ちます私のPHPクラスに他のエコーはありませんので、問題ではありません。あなたが戻っページに結果を生成することができます前に、あなたのif
文で事前に
おかげで、
ifの内部から 'return'を削除して、結果のヘッダとエコーを取得します。現在、 'return'の後に何も実行されません。 – RiggsFolly
はいRiggsFolly。 @Mats de Waard、あなたのプライベートPHP sendContactForm()関数をどう呼びますか? – Xenofexs
@Xenofexs私はそれが 'publicであっても、AJAX呼び出しから直接クラスメソッドを呼び出す方法を知らないので、そのクラスの別のメソッドから実行されていると仮定しなければなりません。 – RiggsFolly