मैं एक खाली सरणी प्राप्त करने की समस्या का सामना कर रहा हूँ जब मैं निम्नलिखित तरीके से एक AJAX अनुरोध करते हैं:jQuery AJAX के पीएचपी JSON समस्या
:इस कोड मैं जावास्क्रिप्ट में क्रियान्वित कर रहा हूँ है
<script type="text/javascript" src="lib/jquery.js"></script>
<script type="text/javascript" src="lib/jquery.json.js"></script>
<script type="text/javascript">
$(document).ready(function(){
/* Preparar JSON para el request */
var mJSON = new Object;
mJSON.id_consulta = new Array;
for (var i=0; i<3; i++){
mJSON.id_consulta[i] = new Object;
mJSON.id_consulta[i].id = i;
}
var sJSON = $.toJSON(mJSON);
$.ajax({
type: "POST",
url: "getUbicaciones.php",
data: sJSON,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(respuesta){
alert(respuesta);
},
error: function (request,error){
alert("Error: " + request.statusText + ". " + error);
}
});
});
</script>
और यह पीएचपी तहत कोड है:
<?php
/* Decodificar JSON */
$m_decoded = $_POST;
print_r($m_decoded);
exit;
?>
और यह सब मैं इस से मिलता है, Chrome के डेवलपर उपकरण का उपयोग कर एक खाली सरणी है:
Array
(
)
मैं क्या गलत कर रहा हूं पर कोई संकेत?
{"id_consulta":[{"id":1},{"id":2},{"id":3}]}
अग्रिम में हर किसी को धन्यवाद:
स्ट्रिंग sJSON सही ढंग से इनकोडिंग जा रहा है, यह मैं क्या मिलता है जब मैं "अलर्ट" से है कि एक पर क्या है!
वैसे यह काम करता है, लेकिन आप बस 'डेटा: एमजेएसओएन' और 'प्रक्रिया डेटा' का उल्लेख करने की आवश्यकता नहीं हो सकती थी, इसे 'var sJSON = $ .toJSON (mJSON.id_consulta) के साथ JSON में परिवर्तित करने की आवश्यकता नहीं है; '। आप बस 'डेटा: एमजेएसओएन' लिख सकते थे और 'प्रक्रिया डेटा पैरामीटर' हटा सकते थे .... PHP अंत में आपको सीधे एक सरणी मिल जाएगी जो आपको 'डीकोड' और न ही 'स्ट्रिप्सलाश' की आवश्यकता होगी – swapnilsarwe
कोड [पेस्टबिन पर] देखें (http : //pastebin.com/iM3cnE0G) – swapnilsarwe