2010-04-06 14 views
15

मेरे पास एक jquery-AJAX फ़ंक्शन है जो एक php स्क्रिप्ट पर डेटा भेजता है और समस्या वापसी मान के साथ होती है, यह एकल मान के बजाय पूरे पृष्ठ को लौटाती है।jQuery अजाक्स पूरे पृष्ठ को लौटाता है

आपके समय और सहायता के लिए धन्यवाद।

$("#ajaxBtn").click(function(){ 
var inputText = $("#testText").val(); 

$.ajax({ type: "POST", 
url: "index.php", 
data: "testAjax="+inputText, 
dataType: "html", 
success: function(html){ 
alert(html); 
} 
}); 
});   
+0

आपके द्वारा अपेक्षित वापसी मूल्य क्या है? JSON, पाठ, एक्सएमएल, आदि ...? मुझे लगता है कि इसमें आपकी PHP स्क्रिप्ट के साथ कुछ करना है, इसलिए यदि आप इसे पोस्ट करते हैं तो यह सहायक होगा। –

+1

ठीक है, यहाँ कोड है:?

+0

मुझे पता है कि यह तथ्य के दो साल बाद है, लेकिन मैं इस मुद्दे में भाग रहा हूं। मुझे लगातार वस्तुओं की ज़रूरत है, और इसलिए मुझे लगता है कि एक ही पृष्ठ पर एक अजाक्स कॉल पर्याप्त होगा। अफसोस की बात नहीं, मुझे पूरा पृष्ठ प्रतिक्रिया के रूप में मिल रहा है। – Dale

उत्तर

28

इस तरह यह काम करता है। आप AJAX के माध्यम से index.php का अनुरोध कर रहे हैं, इसलिए आपको index.php की सामग्री जो भी मिल जाएगी।

यदि आप कोई विशेष मान चाहते हैं, तो एक नया PHP पृष्ठ बनाएं जो केवल उस मान को आउटपुट करता है, और इसके बजाय उस URL की सामग्री का अनुरोध करता है।

+0

धन्यवाद! मैंने अनुरोध को "AJAX.php" पृष्ठ में बदल दिया और यह ठीक काम करता है! –

5

सोफिया, आपके मामले में, आपको अपने डेटा को एक php फ़ाइल में नहीं भेजना चाहिए, यदि किसी वेब ब्राउज़र द्वारा देखा गया है, तो वेबसाइट पेज प्रदर्शित करता है। आपको अपनी जानकारी एक php फ़ाइल में भेजनी चाहिए जो केवल उस डेटा को लौटाती है जिसे आप वापस देखना चाहते हैं।

तो "index.php" के बजाय, "my-ajax-script.php" जैसी कुछ फ़ाइल बनाएं। उस फ़ाइल में डेटाबेस और आपके php फ़ंक्शन फ़ाइलों से कनेक्ट करने के लिए आवश्यक "शामिल()" फ़ाइलों को शामिल करना चाहिए (यानी: POST डेटा को स्वच्छ करने के लिए)। तब फ़ाइल में कोड होना चाहिए जो POST डेटा को संसाधित करता है, और कुछ एचटीएमएल टैग के साथ पूरा डेटा गूंजता है। यह डेटा आपके मौजूदा डोम (एचटीएमएल मार्कअप) में डाला जाएगा।

9

तो तुम शुरुआत में अपने index.php पर इस राशि जब ?:

<?php 
    if (isset($_POST["testAjax"])) { 
     echo $_POST["testAjax"]; 
    } 
?> 

इस स्क्रिप्ट आगे पाठ तो निश्चित रूप से यह भी अजाक्स कॉल द्वारा प्राप्त किया जाएगा outputting है तो। आप आगे कार्रवाई की जा रही से स्क्रिप्ट को रोकने के लिए गूंज के बाद exit() रख सकते हैं:

if (isset($_POST["testAjax"])) { 
    echo $_POST["testAjax"]; 
    exit(); 
} 

इसके अलावा, आप वापसी मान के रूप में dataType: 'text' का उपयोग स्पष्ट रूप से एचटीएमएल नहीं है।


या जैसा कि अन्य सुझाव देते हैं, एक नया पृष्ठ बनाएं जो अजाक्स अनुरोध से निपटने के लिए ज़िम्मेदार है। यदि आप प्राप्त मूल्य को आउटपुट करने के अलावा अधिक कर रहे हैं (यानी अधिक जटिल परिचालन) तो आपको वैसे भी ऐसा करना चाहिए।

+0

आपने मुझे बचा लिया है! –

+0

@ फ़ेलिक्स, मैं इस तरह की समस्या में भाग रहा हूं। क्या आप अपने उत्तर पर और विस्तार कर सकते हैं? मैं एचटीएमएल फॉर्म से इनपुट ले रहा हूं और इसे php/mysql क्वेरी में भेज रहा हूं। तो, मैंने सब कुछ एक फाइल में शामिल किया था। क्या इसे संभालने का कोई बेहतर तरीका है? किसी उदाहरण के लिए कोई लिंक मदद करेगा। धन्यवाद – user5249203

+0

मैन आप एक स्वाद हैं। काश मैं 1 से अधिक + कर सकते हैं –

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