2013-04-18 5 views
9

पर उलझन में मैं AJAX .done() फ़ंक्शन का उपयोग करने के तरीके पर थोड़ा उलझन में हूं। मैं यह जांचने के लिए एक फॉर्म को सत्यापित करने पर काम कर रहा हूं कि उपयोगकर्ता डेटाबेस में मौजूद है या नहीं और हालांकि AJAX सबसे अच्छा तरीका होगा (अभी भी इसे सीख रहा है)। मेरे पास एक php फ़ाइल है जो उपयोगकर्ता मौजूद नहीं है और यदि उपयोगकर्ता मौजूद नहीं है तो गलत है। मैं बूलियन को किए गए फ़ंक्शन के पैरामीटर में कैसे पास करूं?jquery .ajax .done() फ़ंक्शन

$(".check").blur(function(){ 
    var username = $(".check").val(); 
    $.ajax({ 
    url: "validateUser.php", 
    type: "post", 
    data: "username= " + username 
    }).done(function(result){ 
    if (result == true){ 
     // User exists 
    }else{ 
     // User doesn't exist 
    } 
    }); 
}); 

मुझे उम्मीद है कि यह समझ में आया। मैंने इसे समझाने के लिए अपनी पूरी कोशिश की।

+0

नीचे की कोशिश करो यह एक्सएचआर सफल स्थिति, जैसे वापस आ जाएगी मैं जो कुछ पूछ रहा हूं उसके बारे में थोड़ा उलझन में हूं, क्या उपर्युक्त काम नहीं करता है? – dt192

+0

@DanielTillin मैंने अपनी तरह की jquery वेबसाइट पर एक उदाहरण देखा, लेकिन मैंने इसे सर्वश्रेष्ठ रूप से अनुकूलित करने के लिए संपादित किया, लेकिन मुझे यकीन नहीं है कि उन्हें 'परिणाम' पैरामीटर कहां से मिलता है। – Vince

+1

परिणाम वह डेटा है जो पोस्ट से लौटाया जाता है, लेकिन लौटाया गया डेटा एक स्ट्रिंग है, इसलिए यदि आप अपनी PHP फ़ाइल आउटपुट – dt192

उत्तर

6

मुझे लगता है कि यह होना चाहिए परिणाम == 'सत्य' परिणामस्वरूप एक डेटा स्ट्रिंग

मैंने अभी जांच की है, मैं सही हूं, उद्धरण इसे काम करते हैं

पीएचपी:

<?php 

if($_POST['username']=='sambob'){echo 'true';}else{echo 'false';} 

?> 

जावास्क्रिप्ट

username='sambob'; 

$(".check").blur(function(){ 
    $.post("validateUser.php", { username: username }) 
    .done(function(data) { 
    if (data == 'true'){ 
     alert("User exists"); 
    }else{ 
     alert("User doesn't exist"); 
    } 
    }); 
}); 

json पीएचपी

<?php 

if($_POST['username']=='sambob'){echo'{"exists":true}';} 
          else{echo'{"exists":false}';} 
?> 

json जावास्क्रिप्ट

$(".check").blur(function(){ 
    $.post("validateUser.php", { username : username }, 
    function(user){ 
     if (user.exists == true){ 
     alert("User exists"); 
     }else{ 
     alert("User doesn't exist"); 
     } 
    }, "json"); 
}); 
+0

ठीक है, तो मैंने जो कुछ किया है उसकी तुलना में मैंने तुलना की है, और यह पता चला है कि त्रुटि मेरे PHP कोड में थी। जब मैं सच या गलत लौटा, तो मैंने उन्हें उद्धरणों में आस-पास नहीं रखा, और मैंने उन्हें गूंज नहीं दिया। मैं बदले में बदले में इस्तेमाल किया। – Vince

+1

lol यही है कि मैं आपको शुरुआत से ही बता रहा था :-) – dt192

+1

कोई जांच नहीं, मैं कई बार खुद ही रहा हूं यह हमेशा आसान चीजें हैं जो ट्रैक करना मुश्किल है, शुभकामनाएं ;-) – dt192

4

अपने php पक्ष पर, आप कुछ json string गूंज चाहिए, उदाहरण के लिए मैं validateUser.php पर इस तरह करेंगे:

//Check your database etc. 
$user_exists = array('error'=>false,'user'=>true); 
echo json_encode($user_exists); 

और jQuery के साथ तुलना में:

$.ajax({ 
    url: "validateUser.php", 
    type: "post", 
    data: "username= " + username, 
    dataType: "json", 
    }).done(function(result){ 
    if (result.error == false){ 
     //No errors, check user 
     if(result.user == true) 
      alert("Exists"); //now do some stuff 
     else 
      alert("User don't exists"); 
    }else{ 
     // There is an error 
    } 
    }); 
0

सफलता: 200
हो गया:: एक बार एक्सएचआर सफलता मिल तो यह पूरा करने और एक वापसी डेटा के साथ वापस आ जाएगी

कोड

$.ajax({ 
type: "POST", 
url: Url, 
data: dataParameter, 
async: true, 
success: function(results, textStatus) { 
    debugger; 
    console.log("success : " + results); 
}, 
error: function(xhr, status, error) 
{ 
    console.log("error : " + xhr.responseText);     
} 
}).done(function(results) { 
    debugger;   
    console.log("done : " + results);   
}); 
संबंधित मुद्दे