ठीक है यहाँ गंभीरता से संघर्ष कर रहा है। मुझे AJAX के माध्यम से PHP में बहु-आयामी सरणी भेजने की कोशिश करने में कुछ समस्याएं आ रही हैं। यहाँ मैं क्या कोशिश कर रहे हैं क्या है:PHP के लिए AJAX के माध्यम से बहुआयामी Arrays
बजाय आसान बनाने में कॉपी करने के लिए कोड की एक दीवार पेस्ट:
peoplearray[0] = [name] => 'john'
[age] => '28'
[sex] => 'Male'
peoplearray[1] = [name] => 'julie'
[age] => '20'
[sex] => 'Female'
main_array['item'] = 'x';
main_array['something'] = 'x';
main_array['another'] = 'x';
मैं इस post
के माध्यम से PHP के लिए करना चाहते हैं। मैं सोचा मैं सिर्फ उन्हें शामिल होने के रूप में अच्छी तरह कर सकते हैं एक साथ के रूप में मैं बहुआयामी वैसे भी इस प्रकार हूँ: निम्नलिखित अभी
// var data = JSON.stringify(main_array);
var send = $.ajax({
type: "POST",
cache: false,
url: "theurl",
data: {data:main_array} //I do change this `main_array` when using the above stringify!
});
send.done(function(msg) {
console.log(msg);
})
PHP में
मैं सिर्फ कर रहा हूँ:
main_array['peoplearray'] = peoplearray;
अब
ajax करने के लिए
$data= $_POST['data'];
print_r($data);
फ़ायरबग में
: (an empty string)
जब मैं var data = JSON.stringify(main_array);
है
Array ()
मूल रूप से main_array
मुझे पता है एक सरणी होने की जरूरत नहीं है और इसलिए मुझे कोई समस्या नहीं भर है कि सामग्री प्राप्त कर सकते: अगर मैं php मैं पाने के लिए $data = json_decode($_POST['data']);
जोड़ने [][
: uncommented मैं निम्नलिखित मिल लेकिन मुझे क्या करना है peoplearray
पर प्राप्त करें ताकि मैं कुछ foreach
आदि कर सकूं ... php में इसके साथ। किसी भी मदद की बहुत सराहना की जाएगी मुझे यकीन है कि मैं सिर्फ बेवकूफ हूँ!
संपादित करें: इसके पीछे तर्क यह है कि peoplearray
में 0 या 100 प्रविष्टियां हो सकती हैं, इसलिए मुझे इसे PHP पर प्राप्त करने की आवश्यकता है ताकि मैं डीबी इनपुट करने के लिए foreach
कर सकूं। यदि कोई बेहतर दृष्टिकोण है तो मैं इसे सुनकर बहुत आभारी हूं क्योंकि मैं अभी भी इसके लिए बहुत नया हूं।
संपादित करें: निकॉला का जवाब सब कुछ के लिए धन्यवाद महत्वपूर्ण हिस्सा जो mainarry.peoplearray है, सिवाय इसके ठीक गुजर रहा है - यह वापसी console.log
में दिखाई दे रहा है और मैं PHP में इसे का उपयोग नहीं कर सकते। इस पर कोई समाधान या क्या मुझे जावास्क्रिप्ट में फोरच इंटेलिजेंस रखना है और बस सबकुछ अलग-अलग भेजना है?
क्या आप पूरे जेएस फ़ंक्शन को पोस्ट कर सकते हैं जो AJAX अनुरोध करता है? यदि आप console.log (main_array) का उपयोग करते हैं ($ .ajax को कॉल करने से पहले) यह फ़ायरबग में क्या दिखाता है? –
JSON.stringify से पहले इसे करने पर मुझे console.log (main_array) के साथ सही परिणाम मिल रहा है। JSON.stringify के बाद मुझे मिलता है: []। जहां तक अजाक्स है, मैं वर्तमान में कर रहा हूं। वास्तव में यह एकमात्र सच्ची प्रतिलिपि और पेस्ट है! बस इस बिंदु पर पहुंचने के लिए मुझे क्रोम में हमेशा के लिए डिबगिंग सरणी ले गई है, मुझे पता नहीं चला है। – Zac