2010-07-13 18 views
11

काम नहीं कर रही है तो मुझे कुछ आसान करने की कोशिश करने में बहुत कठिन समय है। यहां कोड है:jQuery 'अगर' कथन स्ट्रिंग तुलना

 if(data == 'success') { 

      alert('foo'); 

     } else { 

      alert(data); 

     } 

मैंने इसे सरल बना दिया है, लेकिन यह समझना आवश्यक है कि क्या हो रहा है। परिवर्तनीय 'डेटा' एक AJAX कॉल का परिणाम है, अगर इससे कोई फर्क पड़ता है। समस्या यह है कि यह हमेशा 'अन्य' कथन पर जाता है और यह 'सफलता' को अलर्ट करता है, जो इसे 'अन्य' पर नहीं लेना चाहिए। कोई विचार क्या हो रहा है?

संपादित करें:

$.post("/manage_sites.php", {before:before, edit:after}, function(data){ 

     if(data == success) { 

      alert('blah'); 

     } else { 
      alert(data); 
     } 
    }); 

और फिर पीएचपी जवाब में::

...code.... 
$update = mysql_query("UPDATE users SET feeds = '$afterFeed' WHERE username = '$name'") or  die("Query Failed"); 

if($update) { 

    echo 'success'; //this is the 'string' that is being given to 'data' 
} 
+2

'अलर्ट (टाइपफ डेटा); 'यह आपको एक विचार देगा यदि आप संतरे से सेब की तुलना कर रहे हैं, और इस तरह हमेशा दूसरे में जा रहे हैं। –

+0

यह मुझे 'स्ट्रिंग' दिया। – williamg

+1

क्या आप पूर्ण AJAX प्रतिक्रिया पेस्ट कर सकते हैं, क्या यह जेसन है? – redsquare

उत्तर

28

आप क्लाइंट पक्ष इस तरह $.trim() का उपयोग करने पर इसे ठीक कर सकते हैं:

if($.trim(data) == 'success') { 

या, एक बेहतर दृष्टिकोण नई लाइन सर्वर साइड से आ रही, में शायद एक गलत नई लाइन को हटाने होगा आपका PHP कहीं, <? ?> ब्लॉक से पहले या उसके बाद जांचें, यह अक्सर होता है जहां वे फसल हो जाते हैं।

या, के बाद बस से बाहर निकलें इस तरह अपनी सामग्री outputting,:

if($update) { 
    echo 'success'; 
    exit(); 
} 
+0

मैं एक तत्व की 'सामग्री' सीएसएस संपत्ति पढ़ रहा हूं और यहां तक ​​कि ट्रिमिंग भी पास करने की तुलना में मदद नहीं करता है। –

0

आप अपनी फ़ाइल में अनुगामी> निकाल सकते हैं, अगर यह होता है यहाँ jQuery में पूर्ण AJAX कोड है फ़ाइल में अंतिम पंक्ति। मैं मूल मुद्दे पर टिप्पणियों का जवाब देना चाहता हूं, लेकिन मुझे नहीं पता कि कैसे।

+1

का उपयोग करने के बजाय प्रिंट() का उपयोग करना बेहतर होगा, आपको उस प्रश्न पर टिप्पणी पोस्ट करने के लिए 50 प्रतिनिधि की आवश्यकता है, जिसे आपने नहीं पूछा था। पोस्टिंग रखें! http://stackoverflow.com/faq – jasongetsdown

0

क्लाइंट साइड सत्यापन काम कर ठीक।

$.trim() fine. 

धन्यवाद निक। मुझे यह समझने में लंबा लगा कि यह क्यों काम नहीं कर रहा है ...

संबंधित मुद्दे