Ajax関数をtrueまたはfalse(別の関数から呼び出される一種の検証関数)に戻そうとしています。したがって、他の関数は、この関数から真偽値を取得して、次に何をするかを知る必要があります。Ajax関数をtrueまたはfalseに戻す
私はこれまでこれをやったことがあると確信していますが、今は動作させることができません。私は同期と非同期の呼び出しを試み、onreadystatechange関数の中に戻り、その下に何もない。
これはアヤックスである:今
function saveBooking(){
var service_ids=document.getElementById("allservice_ids").value;
var provider_ids=document.getElementById("allprovider_ids").value;
var chosen_time=document.getElementById("chosen_time").value;
var chosen_date=document.getElementById("chosen_date").value;
var message=document.getElementById("message").value;
var parameters="service_ids="+service_ids+"&provider_ids="+provider_ids+"&time="+chosen_time+"&date="+chosen_date+"&you=<?php echo $_SESSION['user_mail']; ?>&message="+message
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("POST","include/save_booking.php",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
xmlhttp.onreadystatechange = function() {//Call a function when the state changes.
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var yesorno=xmlhttp.responseText;
if(yesorno=="ok"){
return true;
}
else{
document.getElementById("booking_error").innerHTML = xmlhttp.responseText;
return false;
}
}
}
xmlhttp.send(parameters);
}
save_booking.phpはちょうどライン<?php echo "ok"; ?>
が含まれている、私はテスト目的のためにそれにそれを軽減しました。
これを動作させる方法を教えてもらえますか?他の機能では、私がこれを行う場合:
if(saveBooking()){
alert(saveBooking());
}
「未定義」という単語だけを警告します。
私はjQueryにあまり慣れていないので、 'use jQuery'は私にとって有益な回答ではありません。
でも、jQueryを使用してください。この巨大なコードを理解できれば、jqueryは完全に理解するまでに約7分かかります。賢明な人にしようとはしませんが、jqueryは混乱とエラーだけでなく、あなたの手書きコードの多くを取り除きます。 – Dutchie432
Firebugを開き、NETタブをクリックしてHTTP応答を見てください。返す代わりに –
真実..いくつかの変数を試して、それ以外の場合には警告してください。ちょうどテストのため – zod