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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как передать массив обработчику Аякс-запросов?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
B_U_T_C_H
Отправлено: 28 Апреля, 2008 - 08:17:43
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2008  


Помог: 0 раз(а)




Есть массив bookmarks, как передать его в post запросе php странице?
 
 Top
SION-ZENIT
Отправлено: 28 Апреля, 2008 - 10:27:26
Post Id


Частый гость


Покинул форум
Сообщений всего: 148
Дата рег-ции: Июль 2007  
Откуда: SPb


Помог: 0 раз(а)




Не знаю, но я бы попробывал что нибудь вроде этого:
CODE (text):
скопировать код в буфер обмена
  1. var params='';
  2. for(var i=0;i<arr.length;i++)
  3.    params='&param'+i+'='+arr[i];
  4. request.send(params);

Но это только предположения
 
 Top
B_U_T_C_H
Отправлено: 28 Апреля, 2008 - 10:41:34
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2008  


Помог: 0 раз(а)




В данном случае нам придется выдергивать целиком get параметры и разбирать, что там к чему.

Когда у нас в форме ( method="post" ) есть список в котором разрешен multiselect ( name="select[]" ), все выбранные в нем значения передаются массивом. На странице обработчике принимаем массив так:
PHP:
скопировать код в буфер обмена
  1. <?
  2.    $arr = $_POST['select'];
  3. ?>


Я попробовал передать тот же select[] методом "get", получилась такая строка -

CODE (text):
скопировать код в буфер обмена
  1. ajax_requests.php?select%5B%5D=1&select%5B%5D=3&Submit=Submit
  2.  
  3. где %5B%5D = []


В таком случае
PHP:
скопировать код в буфер обмена
  1. <?
  2.    $arr = $_GET['select'];
  3. ?>


не работает.

Убираем [] из имени select[]? получаем:


CODE (text):
скопировать код в буфер обмена
  1. ajax_requests.php?select=1&select=3&Submit=Submit


Пробуем:



в таком случаем переменной $arr присваивается значение последнего select в запросе, то есть 3.





Как ни крути. Кто знает, как передать массив??

(Отредактировано автором: 28 Апреля, 2008 - 12:32:09)

 
 Top
SION-ZENIT
Отправлено: 28 Апреля, 2008 - 10:59:34
Post Id


Частый гость


Покинул форум
Сообщений всего: 148
Дата рег-ции: Июль 2007  
Откуда: SPb


Помог: 0 раз(а)




На сколько я знаю, в POST и GET запросах данные можно передовать только парами имя=значение, наврятли можно передать весь массив, хотя кто знает...
 
 Top
B_U_T_C_H
Отправлено: 28 Апреля, 2008 - 11:05:05
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2008  


Помог: 0 раз(а)




SION-ZENIT пишет:
На сколько я знаю, в POST и GET запросах данные можно передовать только парами имя=значение, наврятли можно передать весь массив, хотя кто знает...


Очень странно, но знатоки молчат;)
 
 Top
valenok
Отправлено: 28 Апреля, 2008 - 11:39:43
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




А вы
request.send(arr);
пробовали?


-----
Truly yours, Sasha.
 
My status
 Top
SION-ZENIT
Отправлено: 28 Апреля, 2008 - 17:01:07
Post Id


Частый гость


Покинул форум
Сообщений всего: 148
Дата рег-ции: Июль 2007  
Откуда: SPb


Помог: 0 раз(а)




valenok пишет:
А вы
request.send(arr);
пробовали?

Такая запись ничего не возвращает, если написать "arr="+arr то возвратиться последний элемент массива. Интересно как интерпритатор понимает, когда данные передаются через форму, что там массив
 
 Top
EuGen Администратор
Отправлено: 28 Апреля, 2008 - 17:55:54
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)






-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
SION-ZENIT
Отправлено: 28 Апреля, 2008 - 20:48:09
Post Id


Частый гость


Покинул форум
Сообщений всего: 148
Дата рег-ции: Июль 2007  
Откуда: SPb


Помог: 0 раз(а)




Хм.... сейчас у себя проверил
CODE (text):
скопировать код в буфер обмена
  1. request.send("param[]=123&param[]=sanya&param[]=12345");


выводит следующее:
Array ( [param] => Array ( [0] => 123 [1] => sanya [2] => 12345 ) ) 1
проверь у себя еще раз может что-то не так делал?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB