2012-04-11 23 views
12

के संदर्भ में php echo और वापसी के बीच अंतर मुझे एक jQuery अजाक्स कॉल की सफलता फ़ंक्शन ठीक से काम करने में परेशानी हो रही थी और यह मुझे बताया गया कि मेरा PHP फ़ंक्शन रिटर्न $ परिणाम का उपयोग कर रहा था जब मुझे echo $ परिणाम का उपयोग करना चाहिए।एक jQuery AJAX कॉल

अमेक्स को "रिटर्न $ परिणाम" से "$ परिणाम प्रतिध्वनि" से बुलाया गया PHP फ़ंक्शन बदलना समस्या को हल करता है, लेकिन क्यों? PHP स्क्रिप्ट के संदर्भ में दो (रिटर्न और इको) के बीच अंतर के रूप में स्पष्टीकरण के भार हैं, लेकिन अजाक्स कॉल में उस मान को भेजते समय वे अलग-अलग कैसे होते हैं?

उत्तर

20

ठीक है, AJAX कॉल सर्वर से प्रतिक्रिया पढ़ता है, और उस प्रतिक्रिया को application/json या text/html जैसे कुछ प्रकार के पठनीय डेटा के रूप में प्रस्तुत किया जाना चाहिए।

उस डेटा को लिखने के लिए, आपको PHP से सर्वर से echo की आवश्यकता है।

रिटर्न स्टेटमेंट डेटा नहीं लिखता है, यह बस सर्वर स्तर पर लौटाता है।

8

एक अजाक्स कॉल HTTP अनुरोध की प्रतिक्रिया का उपयोग करता है। एक PHP स्क्रिप्ट आउटपुट उत्पन्न नहीं करता है, लेकिन प्रतिबिंबित करके।

2

echo कमांड स्टैंडर आउटपुट पर डेटा आउटपुट करता है, यह वेब ब्राउजर अनुप्रयोगों में है, क्लाइंट ने डेटा का अनुरोध किया है। सीएलआई में यह कंसोल पर डेटा प्रिंट करता है। और return आदेश किसी मान के साथ फ़ंक्शन से बाहर निकलें, लेकिन कुछ भी प्रिंट नहीं करता है।

आप पीएचपी कार्यों के बीच comunicate करना चाहते हैं, तो आप return उपयोग करना होगा। लेकिन अगर आप आउटपुट कुछ डेटा चाहते हैं, तो आपको echo का उपयोग करना होगा।

5

अजाक्स कॉल डेटा को उसी तरह देखते हैं जो हम करते हैं, यह इसे एक स्ट्रिंग के रूप में पढ़ता है। यह मूल रूप से एक और वेब पेज तक पहुंच रहा है और परिणाम प्राप्त कर रहा है। PHP की 'वापसी' केवल सर्वर पर मान वापस कर रही है। आपको वास्तव में डेटा आउटपुट करने की आवश्यकता है ताकि जब अजाक्स कॉल किया जाए, तो जिस पेज पर यह देख रहा है वह वास्तव में डेटा लिखा गया है।

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