2008-11-18 10 views
25

मैं एकाधिक चयन के चयनित मानों के साथ जावास्क्रिप्ट में निर्मित एक सरणी भेजना चाहता हूं। AJAX का उपयोग कर इस सरणी को php स्क्रिप्ट में भेजने का कोई तरीका है?मैं AJAX के माध्यम से php को सरणी कैसे भेज सकता हूं?

उत्तर

18

आप एक्सएमएल या जेएसओएन के साथ अपने सर्वर पर वापस पोस्ट कर सकते हैं। आपके जावास्क्रिप्ट को पोस्ट बनाना होगा, जो एक्सएमएल के मामले में आपको जावास्क्रिप्ट में बनाने की आवश्यकता होगी। जेएसओएन केवल हल्का वजन नहीं बल्कि जावास्क्रिप्ट में बनाना आसान है। जेएसओएन पार्सिंग के लिए JSON-PHP देखें।

आप Creating JSON Data in PHP

+1

मैं सबसे अच्छा जवाब के रूप में यह पाया क्योंकि यह छड़ी नहीं है:

यहाँ synatax है विशेष रूप से किसी भी जावास्क्रिप्ट ढांचे के लिए। – Lucia

+0

को एक्सएमएल या जेएसओएन भी नहीं होना चाहिए, आप एक सीएसवी स्ट्रिंग या कुछ भी पोस्ट कर सकते हैं – annakata

+1

जेएसओएन-पीएचपी लाइब्रेरी फ़ज़ीमोनक संकेत पुराना है और तेजी से कार्यान्वयन PHP में पहले से ही है। Json_encode और json_decode फ़ंक्शंस के लिए मैन्युअल देखें। –

1

पर एक नज़र आप Serialize (jQuery संस्करण) के लिए एक रास्ता खोजे जा रहे डेटा लेने के लिए चाहते हो सकता है।

+1

बस कुछ जानकारी जोड़ने के लिए, मुझे इस समाधान की तरह http://www.prototypejs.org/api/object – Lucia

3

आईआईआरसी, यदि PHP http://blah.com/test.php?var[]=foo&var[]=bar&var[]=baz की तरह एक क्वेरी स्ट्रिंग देखता है, तो यह स्वचालित रूप से $var नामक एक सरणी बना देगा जिसमें foo, bar और baz शामिल है। मुझे लगता है कि आप क्वेरी स्ट्रिंग के स्क्वायर ब्रैकेट में सरणी इंडेक्स भी निर्दिष्ट कर सकते हैं और यह उस इंडेक्स में मान को चिपकाएगा। आपको ब्रैकेट को यूआरएल एन्कोड करने की आवश्यकता हो सकती है ... इस सुविधा का उपयोग करने का सामान्य तरीका "var []" नाम के साथ एक HTML इनपुट फ़ील्ड बनाने में है, तो बस ब्राउजर सामान्य रूप से जो भी करता है उसे करें। अनुरोध के माध्यम से सरणी चर पर PHP दस्तावेज़ में एक अनुभाग है।

0

आप एक सरणी बना सकते हैं और भेज यह, के रूप में Meador सिफारिश की: (निम्नलिखित कोड Mootooled है, लेकिन अन्य पुस्तकालयों में समान/सादे पुराने जे एस)

myArray.each(function(item, index) myObject.set('arrayItems['+index+']', item); 
myAjax.send(myObject.toQueryString()); 

एक सरणी arrayItems कहा जाता है PHP के लिए भेज देंगे कि है, जो $ _POST [ 'arrayItems'] के माध्यम से पहुँचा जा सकता है

echo $_POST['arrayItems'] ; 

की तरह कुछ गूंज होगा: सरणी => {[0] => 'पहली बात', [1] => दूसरी बात}

26

तुम jQuery (उदाहरण के लिए) के साथ $ .post विधि कर सकता:

var myJavascriptArray = new Array('jj', 'kk', 'oo'); 

$.post('urltocallinajax', {'myphpvariable[]': myJavascriptArray }, function(data){ 
    // do something with received data! 
}); 

Php एक सरणी जो नाम दिया जाएगा myphpvariable प्राप्त होगा और यह myJavascriptArray मूल्यों शामिल होंगे।

क्या यह है?

+0

पर इस सलाह के प्रोटोटाइप संस्करण को मिल सकता है .. – bingjie2680

+0

+1। बहुत बहुत धन्यवाद! मैं यह जानने की कोशिश कर रहा हूं कि थोड़ी देर के लिए यह कैसे करें। – Nathan

1

jQuery 1.4 को सरणी भेजने के लिए PHP वाक्यविन्यास का उपयोग करने के लिए अद्यतन किया गया था। आप का उपयोग करके पुरानी शैली में स्विच कर सकते हैं:

jQuery.ajaxSetting.traditional = true; 

यहाँ उदाहरण

$.ajax({  
traditional: true, 
type: "post", 
url: myURL, 
dataType: "text", 
data: dataToSend, //this will be an array eg. 
success: function(request) { 
    $('#results').html(request); 
} // End success 
}); // End ajax method 
संबंधित मुद्दे

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