console.logに応答を送信すると、私のajax応答が異なる理由が見つかりません。何か案は?page1はアカウント更新フォームで使用され、page2は登録フォームで使用されます。どのようにAjaxレスポンスが異なるのですか?
page1.js:
function ajaxCheckDupEmail(){
if(valid_email === true){
return $.ajax({
type:'POST',
url:'ajax/page1.php',
data:{ 'email': email, 'email_login': email_login },
success:function(response){
//some code
}
});
}else{
//other code
}
}
$.when(ajaxCheckDupEmail()).done(function(a1){
console.log(a1);
if(a1[0] === 'false'){
//submitting form
//some code
}
});
注:電子メールとemail_loginは、私は、電子メールが有効であるかどうかを確認するためにVALID_EMAILを使用し、私はユーザ入力保存のjs VARある
page1.php:
if(isset($_POST["email"]) && !empty($_POST["email"])){
$email = trim_strip_data($_POST["email"]);
$email_login = trim_strip_data($_POST["email_login"]);
$prep_data_email = $db->prepare("SELECT email FROM user WHERE email = :email");
$prep_data_email->execute(array(":email" => $email));
$row_count = $prep_data_email->rowCount();
if($row_count === 1 && $email !== $email_login){
echo "true";
}else{
echo "false";
}
}
注:trim_strip_data()は、この場合には必要ではないと思われますが、空白をトリミングするカスタム関数です
page2.js:
function ajaxCheckDupEmail(){
if(valid_email === true){
return $.ajax({
type:'POST',
url:'ajax/page2.php',
data:{ 'email': email },
success:function(response){
// some code
}
});
}else{
//other code
}
}
function ajaxCheckDupUsername(){
if(username !== ""){
return $.ajax({
type:'POST',
url:'ajax/page2.php',
data:{ 'username': username },
success:function(response){
// some code
}
});
}else{
//other code
}
}
$.when(ajaxCheckDupUsername(), ajaxCheckDupEmail()).done(function(a1, a2){
console.log(a1);
console.log(a2);
if(a1[0] === 'false' && a2[0] === 'false'){
//submitting form
//some code
}
});
注:電子メールは、私は、私はメールが有効であるかどうかを確認するためにVALID_EMAILを使用してユーザ入力保存のjs VARある
page2.php:
if(isset($_POST["email"]) && !empty($_POST["email"])){
$email = trim_strip_data($_POST["email"]);
$prep_data_email = $db->prepare("SELECT email FROM user WHERE email = :email");
$prep_data_email->execute(array(":email" => $email));
$row_count = $prep_data_email->rowCount();
if($row_count === 1){
echo "true";
}else{
echo "false";
}
}
if(isset($_POST["username"]) && !empty($_POST["username"])){
$username = trim_strip_data($_POST["username"]);
$prep_data_username = $db->prepare("SELECT username FROM users WHERE username = :username");
$prep_data_username->execute(array(":username" => $username));
$row_count = $prep_data_username->rowCount();
if($row_count === 1){
echo "true";
}else{
echo "false";
}
}
注:trim_strip_data()は、この場合には必要ではないと思うが、空白をトリミングするカスタム関数です
問題は2つの異なる応答を返します(結果に応じてtrue/false)を返します。 page2.jsで
true
は私が手::page1.jsで
私が取得私はpage2.jsでレスポンスオブジェクトを取得するよう
true,success,[object Object]
true,success,[object Object]
に見えますが、私はなぜありませんpage1.jsで1つを取得しますか?
私は2つの反応を警告しましたが、私の質問で述べたのと同じ結果が得られます。私はコードを紛失していません。 – Thoaren