Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Передача POST запросом массива из PHP (https://javascript.ru/forum/jquery/13103-peredacha-post-zaprosom-massiva-iz-php.html)

alex_zp 15.11.2010 14:36

Передача 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']);

Передаётся как-то бред, подскажите, что я делаю не так и как надо написать, чтобы правильно передавался массив их ПХП? Массив может быть как обычным так и ассоциативным.

Gvozd 15.11.2010 14:41

Цитата:

Сообщение от alex_zp
var post_masiv = '<?=$array_data;?>'; 

чему равно $array_data при генерации страницы?

alex_zp 15.11.2010 14:47

Цитата:

Сообщение от Gvozd (Сообщение 79381)
чему равно $array_data при генерации страницы?

это передаваемый массив POST с другой формы.

micscr 15.11.2010 14:52

Цитата:

Сообщение от alex_zp
Передаётся как-то бред

так неверно говорить. Типа как будто ты не причем. Правильно говорить: передаю какой то бред. ;)

1) Подумай над: '<?=json_encode($array_data);?>' и без JSON.stringify.
2)
data:'id_next_page=' + formData

подразумевается что formData - строка, а выше вижу что объект. будет преобразование, но не совсем в царевну.

alex_zp 15.11.2010 15:18

Да, Вы правы, передаю бред.
Последовал советам micscr, результат получаю такого вида [\"11\",\"12\",\"15"]. Если обработать функцией полученные данные "json_decode" вообще пустое значение становиться. Как получить данные в нормальном виде теперь, после их передачи? Я так понял, что многомерные массивы не передаёт, пробовал супер глобальный массив передать POST(полученный от предыдущей формы) - не передал, но получается передать отдельные элементы типа POST[''mas1'].

Kolyaj 15.11.2010 21:25

strip_slashes строке надо сделать, видимо.

А вообще странная хрень какая-то. Из PHP в JavaScript, чтобы он передал в PHP. Тренируетесь чтоли?

micscr 16.11.2010 07:16

Анализируй:
$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, время: 06:14.