2011-06-27 21 views
5

के लिए प्रतीक्षा कर रहा है मेरे पास एक jpery फ़ंक्शन है, एक php फ़ंक्शन के मान का $ .post कर रहा है। यह php फ़ंक्शन तब इस मान को $ _SESSION में रखता है और उपयुक्त सामग्री दिखाता है।

मुझे लगता है कि पोस्ट पूरा होने तक निष्पादन जारी नहीं रहेगा, क्योंकि $। पोस्ट के बाद सामग्री दिखायी जाती है, और नया $ _SESSION मान अगले ताज़ा होने तक प्रभावी नहीं होता है।

मैं यह कैसे कर सकता हूं?

धन्यवाद!

+1

क्या आप अनुरोध भेजते समय जावास्क्रिप्ट या PHP को रोकना चाहते हैं? – matzahboy

+0

क्या आप विंडो.लोकेशन का उपयोग कर पेज को पुनः लोड नहीं कर सके? – Alfred

उत्तर

0

ऐसा लगता है कि आप जो कुछ हासिल करना चाहते हैं उसे पूरा करने के लिए आवश्यकतानुसार कोड की एक अधिक जटिल चोटी बना रहे हैं।

यदि क्लाइंट (जावास्क्रिप्ट) में सर्वर (PHP) को पृष्ठ के लोड के दौरान पृष्ठ को प्रस्तुत करने की अनुमति देने के लिए आवश्यक डेटा है, तो क्लाइंट (जावास्क्रिप्ट) को यह पता होना चाहिए कि सर्वर (PHP) से डेटा मैं चाहता हूं कल्पना कीजिए। इसलिए अगर पृष्ठ (पेज) को पृष्ठ को प्रस्तुत करना शुरू करने से पहले डेटा की आवश्यकता होती है, तो उसे प्रतिपादन से पहले सत्र चर सेट करना चाहिए था।

यह दृश्यता बहुत समझ में नहीं आता है। यह डेटा क्या है कि पृष्ठ लोडिंग के दौरान AJAX का उपयोग कर सर्वर पर भेज रहा है? क्या आप पृष्ठ के लोड के दौरान किसी भी तरह से उपयोगकर्ता इनपुट प्राप्त कर रहे हैं जिसे आपको पृष्ठ प्रतिपादन को समाप्त करने के लिए सर्वर पर वापस भेजने की आवश्यकता है? क्या हम कोई कोड देख सकते हैं?

1

यही कॉलबैक है। $.post() मापदंडों से एक के लिए एक समारोह में बताएं, और यह निष्पादित किया जाएगा केवल जब अनुरोध सफल होने पर:

$.post("test.php", function(data) { 
    alert("Data Loaded: " + data); 
}); 

document.write('This won`t wait for ajax'); 

इस कोड alert() हिस्सा निष्पादित करेंगे के बाद ही ajax अनुरोध लोड हो रहा है समाप्त हो जाती है, लेकिन document.write() सीधे निष्पादित करेगा, एक प्रतिक्रिया के इंतजार के बिना।