Передача POST запросом массива из PHP
Добрый день.
Задача такая - из ПХП получаю массив и необходимо его передать POST запросом через jquery, использую json.
<script type="text/javascript" src="jquery-1.3.1.min.js"></script>
<script type="text/javascript" src="jquery.json-1.3.js"></script>
<script type="text/javascript">
$(function() {
$("#myForm").submit(function() {
var formData = {
"id_next_page":$("#next_page").val()
};
var post_masiv = '<?=$array_data;?>';
$.ajax({
url:'process_posting.php'
, type:'POST'
, data:'id_next_page=' + formData+'&post_masiv='+JSON.stringify(post_masiv)
, success: function(res) {
alert(res);
}
});
return false;
});
});
</script>
Получаю данные так $data = json_decode($_REQUEST['post_masiv']); Передаётся как-то бред, подскажите, что я делаю не так и как надо написать, чтобы правильно передавался массив их ПХП? Массив может быть как обычным так и ассоциативным. |
Цитата:
|
Цитата:
|
Цитата:
1) Подумай над: '<?=json_encode($array_data);?>' и без JSON.stringify. 2) data:'id_next_page=' + formData подразумевается что formData - строка, а выше вижу что объект. будет преобразование, но не совсем в царевну. |
Да, Вы правы, передаю бред.
Последовал советам micscr, результат получаю такого вида [\"11\",\"12\",\"15"]. Если обработать функцией полученные данные "json_decode" вообще пустое значение становиться. Как получить данные в нормальном виде теперь, после их передачи? Я так понял, что многомерные массивы не передаёт, пробовал супер глобальный массив передать POST(полученный от предыдущей формы) - не передал, но получается передать отдельные элементы типа POST[''mas1']. |
strip_slashes строке надо сделать, видимо.
А вообще странная хрень какая-то. Из PHP в JavaScript, чтобы он передал в PHP. Тренируетесь чтоли? |
Анализируй:
$x = array('xxx'=> array('ttt' => 3, 'kkk' => 4 ), 'yyy' => 123);
echo '<pre>' . print_r($x, true) . '</pre>';
$s = json_encode($x);
echo $s;
echo '<pre>' . print_r(json_decode($s, true), true) . '</pre>';
|
| Часовой пояс GMT +3, время: 20:44. |