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]   

> Без описания
Pavelbeginner
Отправлено: 03 Августа, 2011 - 20:02:03
Post Id



Частый посетитель


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


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




Хочу сделать такую вещь: пользователю даётся возможность создавать товары, например. Он щелкает по кнопке, появляется строка с полями. Он вводит данные в эти поля, отправляет на сервер, всё круто. Но, что делать, если он хочет создавать за раз несколько продуктов, а именно щёлкает еще раз на кнопку, появляется вторая строка с такими же полями. И так 20 раз щелкнул кнопку, 20 строк появилось. Потом он передумал и удалил 10 строк(рядом были кнопки удаления). Загвоздка в том, как распознавать php скрипту поля, то есть, как сделать во-первых названия параметров каждого продукта уникальными и в то же время различать к какому продукту какие параметры относятся? Можно конечно каждому продукту приписывать цифру, например <input name="age1" type="text"> <input name="age2" type="text">, но это маразм. Хотелось бы элегантный способ какой-нибудь. Предложите, пожалуйста, красивый и удобный способ. И, может быть, можно сделать так, чтобы на сервер по каждому продукту пришёл массив, в котором содержатся параметры с одинаковыми названиями, то есть вот такие массивы приходили бы на сервер:
arr[0]['name'],arr[0]['age']
arr[1]['name'],arr[0]['age']

name и age в данном примере - это текстовые поля, то есть <nput type="text" name="age">
 
 Top
LIME
Отправлено: 03 Августа, 2011 - 20:53:00
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




<input name="age[]" type="text">
автомассив заполнится индексами на стороне сервера от 0 до кол-во таких же имен-1
 
 Top
Pavelbeginner
Отправлено: 03 Августа, 2011 - 20:57:56
Post Id



Частый посетитель


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


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




LIME, я об этом думал, но каков алгоритм формирования индексов? То есть какие гарантии, что age и name одного продукта на сервере получат одинаковый индекс?
(Добавление)
Не случится ли такого, что у одного продукта name получит индекс 1, а age получит индекс 2, а у второго продукта ноборот?
 
 Top
Arni
Отправлено: 03 Августа, 2011 - 21:11:38
Post Id



Гость


Покинул форум
Сообщений всего: 95
Дата рег-ции: Июль 2011  


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




Это вас интересует ведет ли себя php одинаково в зависимости от сервера? Если да, то ответ тоже да, php ведет себя везде почти идентично.
 
 Top
LIME
Отправлено: 03 Августа, 2011 - 21:13:48
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




Pavelbeginner попробуйте поэкспериментировать с разными браузерами
врядли случайно отправляют
(Добавление)
и обязательно сообщите тоже стало любопытно))
 
 Top
Arni
Отправлено: 03 Августа, 2011 - 22:06:43
Post Id



Гость


Покинул форум
Сообщений всего: 95
Дата рег-ции: Июль 2011  


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




LIME пишет:
Pavelbeginner попробуйте поэкспериментировать с разными браузерами
врядли случайно отправляют


Вот недумаю я что браузеры ведут себя как-то иначе.

фф.

Цитата:

Заголовки ответапоказать исходный код
Date Wed, 03 Aug 2011 06:47:11 GMT
Server Apache/2.2.19 (FreeBSD) mod_ssl/2.2.19 OpenSSL/0.9.8q DAV/2 SVN/1.6.17 PHP/5.3.6 with Suhosin-Patch
Last-Modified Wed, 03 Aug 2011 06:44:36 GMT
Etag "65b4be-c5-4a99432993d00"
Accept-Ranges bytes
Content-Length 197
Keep-Alive timeout=5, max=100
Connection Keep-Alive
Content-Type text/html; charset=utf-8
Заголовки запросапоказать исходный код
Host 5-tsumi.ath.cx
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Connection keep-alive
Referer http://5-tsumi[dot]ath[dot]cx/test[dot]html


post
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. var[]   1
  3. var[]   2
  4. var[]   3
  5.  
  6. Content-Type: application/x-www-form-urlencoded Content-Length: 35 var%5B%5D=1&var%5B%5D=2&var%5B%5D=3
  7.  



Опера прислала тоже самое. Ишака даже трогать не хочу но уверен что ничего нового.

(Отредактировано автором: 03 Августа, 2011 - 22:08:17)

 
 Top
LIME
Отправлено: 03 Августа, 2011 - 22:16:43
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




Arni вы непоняли
экпериментировать надо с парами var1[] var2[] и давать одинаковые значения парам с одинаковыми индексами
вот тут хз кто как себя поведет
(Добавление)
ну да
параметры передаются по мере появления в документе
пары не перемешиваются
FF opera ie6 chrome
 
 Top
Самогонщик
Отправлено: 06 Декабря, 2011 - 17:14:34
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


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




Гуглил и нагуглил эту тему.

У меня формируется список приказов (длинная такая простыня) и под каждым из них есть группа радиобаттонов для выбора, что с каждым из приказов делать дальше. Наботр радиобаттонов во всех группах одинаковый. Хочется как и здесь принять на стороне сервера всего 4 массива и обработать их. С выпадающим списком проканало бы, а вот с радиобаттонами я даже не знаю что и делать.

З.Ы. Золотую лопату мне!
(Добавление)
Без яваСкрипт конечно же, только голые формы.
 
 Top
Arch-Web
Отправлено: 06 Декабря, 2011 - 18:04:40
Post Id



Частый гость


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


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




<input name="object[0]['name']" type="text">
<input name="object[0]['age']" type="text">


<input name="object[1]['name']" type="text">
<input name="object[1]['age']" type="text">



на сервере
$object = $_POST['object'];
print_r($object);

результат

CODE (htmlphp):
скопировать код в буфер обмена
  1. (
  2.   0 => Array( 'name'=> Maxim, 'age'=> 20 )
  3.   1 => Array( 'name'=> Dima, 'age'=> 20 )
  4. )
 
 Top
Самогонщик
Отправлено: 06 Декабря, 2011 - 18:08:45
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


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




Круто, сначала сказал я себе, а потом сделал так
CODE (html):
скопировать код в буфер обмена
  1.   <input type="radio" name="object[0]['name']" type="radio">
  2.   <input type="radio" name="object[0]['age']" type="radio">
  3.   <input type="radio" name="object[1]['name']" type="radio">
  4.   <input type="radio" name="object[1]['age']" type="radio">

И как ожидалось, никаких групп они в браузере не образовывали.
 
 Top
Arch-Web
Отправлено: 06 Декабря, 2011 - 18:30:47
Post Id



Частый гость


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


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




Самогонщик, Какие группы ?

name="object[0]['name']"
это тоже самое что и
$object[0]['name'] = "Test";
 
 Top
Самогонщик
Отправлено: 06 Декабря, 2011 - 18:37:04
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


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




Самогонщик пишет:
группа радиобаттонов для выбора
В группе выбирается только один радиобаттон, в этом их главная фишка. Таких групп много.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTML, Дизайн & CSS »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB