Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: передача массива
Форумы портала PHP.SU » » Вопросы новичков » передача массива

Страниц (1): [1]
 

1. furious - 15 Ноября, 2013 - 10:04:26 - перейти к сообщению
Доброе утро. Возникла проблема при передачи массива с js в php. Есть 4 страницы - index.php, app.js, test.php, fun.php. Все они находятся в разных папках. В test.php через через ajax в fun.php отправляется переменная -
PHP:
скопировать код в буфер обмена
  1.  
  2. $a = array('test', 'test1');
  3. <script>
  4. $(document).ready(function(){
  5. var aTest= '<? echo json_encode($a);?>';
  6. $.ajax({
  7.                         url:'/data/fun/funTest',
  8.                         type:'post',
  9.                         dataType:'json',
  10.                         data:{
  11.                            aTest   :   aTest
  12.                         }
  13.                     });
  14. });
  15. </script>
  16.  


в fun.php есть функция которая просто делает var_dump принимаемой переменной
PHP:
скопировать код в буфер обмена
  1.  
  2. function funTest(){
  3.     var_dump(json_decode($_POST['aTest']));
  4. }
  5.  


И если обновить страницу с test.php то все ок. В консоле при запросе появляется массив.

в app.js при нажатии кнопки которая находится в index.php через ajax вызывается та же функция funTest с файла fun.php
Но там этот масив уже NULL.

Как можно передать массив так, что бы он на других страницах возвращался не пустой?
2. caballero - 15 Ноября, 2013 - 12:14:31 - перейти к сообщению
Цитата:
через ajax вызывается та же функция funTest с файла fun.php

Из браузера ( в том числе и аяксом) нельзя вызвать функцию PHP. Можно только обратится к файлу.
наведите порядок в своих мыслях.
3. furious - 15 Ноября, 2013 - 12:38:40 - перейти к сообщению
caballero пишет:
Цитата:
через ajax вызывается та же функция funTest с файла fun.php

Из браузера ( в том числе и аяксом) нельзя вызвать функцию PHP. Можно только обратится к файлу.
наведите порядок в своих мыслях.


как это нельзя? я же обращаюсь как раз к функции и смотрю на результат который она мне возвращает. Просто на других страницах нулл.
4. Deonis - 15 Ноября, 2013 - 13:24:37 - перейти к сообщению
Как-то у вас всё запутано.
1. К функции вы всё-таки не обращаетесь. Она отрабатывает на странице, к которой идет ajax-запрос.
2. Разберем ваш путь '/data/fun/funTest'. Или же у вас на сервере присутствует физически директории по данному пути и в папке funTest есть файл index.php, или же вы используете mod_rewrite и запрос переадресовывается на handler. Где истина?
3. Могу попробовать протелепатировать и предположить, что js-код который вы показали выше, прописан в самом файле test.php. Если это так, то вынесите его в отдельный файл.js, подключите ко всем страницам, где он нужен, "запакуйте" в функцию и отлавливая необходимые события, вызывайте ее, передавая параметры.

 

Powered by ExBB FM 1.0 RC1