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 :: Версия для печати :: передача через POST с заведомо неизвестными параметрами
Форумы портала PHP.SU » PHP » Программирование на PHP » передача через POST с заведомо неизвестными параметрами

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

1. zuher - 13 Марта, 2015 - 16:01:58 - перейти к сообщению
Здравствуйте, поиск не помог. Подскажите как или ткните носом где почитать.
На просторах интернета множество тем, где можно проверить получение переменных методом GET или POST, но как быть, если значение полей заранее неизвестно.
Допустим дополнительные поля формы, которые формируются динамически, тем же java...

Например есть стандартные три поля в форме, но пользователь может добавить какие то свои, как их тогда выловить в обработчике???

Или например динамически созданный список чего либо, который надо добавить в избранное. Итд итп...


Заранее спасибо.
3. Tyoma5891 - 13 Марта, 2015 - 16:04:25 - перейти к сообщению
4. DelphinPRO - 13 Марта, 2015 - 22:34:52 - перейти к сообщению
zuher пишет:
Например есть стандартные три поля в форме, но пользователь может добавить какие то свои


что значит "свои"? он же не может от балды создать поле. Все равно вы должны запрограммировать, что может сделать юзер.
(Добавление)
zuher пишет:
Или например динамически созданный список чего либо


Списки можно передавать

CODE (html):
скопировать код в буфер обмена
  1. <input name="favorites[]">
  2. <input name="favorites[]">
  3. <input name="favorites[]">
  4. <input name="favorites[]">


В php получите массив

PHP:
скопировать код в буфер обмена
  1. $_POST['favorites'][0]
  2. $_POST['favorites'][1]
  3. $_POST['favorites'][2]
  4. $_POST['favorites'][3]
5. GoDr - 14 Марта, 2015 - 06:52:54 - перейти к сообщению
DelphinPRO пишет:
что значит "свои"? он же не может от балды создать поле.
Может, но очень глупо так делать Радость
6. Zveryugaz - 14 Марта, 2015 - 10:59:21 - перейти к сообщению
DelphinPRO пишет:
zuher пишет:
Например есть стандартные три поля в форме, но пользователь может добавить какие то свои


что значит "свои"? он же не может от балды создать поле. Все равно вы должны запрограммировать, что может сделать юзер.
(Добавление)
zuher пишет:
Или например динамически созданный список чего либо


Списки можно передавать

CODE (html):
скопировать код в буфер обмена
  1. <input name="favorites[]">
  2. <input name="favorites[]">
  3. <input name="favorites[]">
  4. <input name="favorites[]">


В php получите массив

PHP:
скопировать код в буфер обмена
  1. $_POST['favorites'][0]
  2. $_POST['favorites'][1]
  3. $_POST['favorites'][2]
  4. $_POST['favorites'][3]


наиболее удобный вариант, а дальше циклом обрабатывать
7. zuher - 14 Марта, 2015 - 12:51:02 - перейти к сообщению
Всем спасибо, сейчас буду пробовать.
На самом деле ирония возможно и уместна, но с такими задачами не сталкивался ни разу ))).
Сейчас встал вопрос сделать на сайте кучу голосований (начинаются отборы на фестивали), которые надо будет создавать в автоматическом режиме, а с формами, где жёстко не прописаны переменные - не работал. Поэтому, собственно, и советуюсь

Так же хочу дать пользователям создавать свои плейлисты, но не представляю как передавать id трека - решил формировать к каждому треку кусочек java скрипта с аякс запросом.
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $("#idtrack7658").click(function(){
  3.                
  4.                 var id=$("#id_track").val();
  5.                 var metka=$("#metka_track").val();
  6.                         $.post("/add_in_playlist_ajax.php",{
  7.                                                                 id:id,
  8.                                                                 metka:metka,
  9.                                                                
  10.                                                                 },
  11.                         function(data){
  12.                         $("#status").html(data);
  13.                         $("#add_buttons").fadeOut(300)
  14.                         });
  15.         });
  16.  


Не уверен, что правильно. Может кто то подскажет )))
Есть сомнения, что получится это очень громоздко в итоге...
8. Zveryugaz - 14 Марта, 2015 - 13:36:37 - перейти к сообщению
zuher пишет:
Всем спасибо, сейчас буду пробовать.
На самом деле ирония возможно и уместна, но с такими задачами не сталкивался ни разу ))).
Сейчас встал вопрос сделать на сайте кучу голосований (начинаются отборы на фестивали), которые надо будет создавать в автоматическом режиме, а с формами, где жёстко не прописаны переменные - не работал. Поэтому, собственно, и советуюсь

Так же хочу дать пользователям создавать свои плейлисты, но не представляю как передавать id трека - решил формировать к каждому треку кусочек java скрипта с аякс запросом.
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $("#idtrack7658").click(function(){
  3.                
  4.                 var id=$("#id_track").val();
  5.                 var metka=$("#metka_track").val();
  6.                         $.post("/add_in_playlist_ajax.php",{
  7.                                                                 id:id,
  8.                                                                 metka:metka,
  9.                                                                
  10.                                                                 },
  11.                         function(data){
  12.                         $("#status").html(data);
  13.                         $("#add_buttons").fadeOut(300)
  14.                         });
  15.         });
  16.  


Не уверен, что правильно. Может кто то подскажет )))
Есть сомнения, что получится это очень громоздко в итоге...


Поставьте обработчик клика, и функцию в которую будет передаваться id и она же будет отправлять данные на серв
всего одна функция на все треки
(Добавление)
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div id='List'>
  3.   <button id='ID ТРЕКА 1'>ДОБАВИТЬ</button>
  4.   <button id='ID ТРЕКА 2'>ДОБАВИТЬ</button>
  5.   <button id='ID ТРЕКА 3'>ДОБАВИТЬ</button>
  6.   <button id='ID ТРЕКА 4'>ДОБАВИТЬ</button>
  7.   <button id='ID ТРЕКА 5'>ДОБАВИТЬ</button>
  8. </div>
  9.  


CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.  
  3. $('#List button').on('click', function(e){
  4.         e.preventDefault();e.stopPropagation();
  5.         var trackId = $(this).attr('id');
  6.  
  7.        тут отправку на сервер
  8. });
  9.  
  10.  
9. zuher - 14 Марта, 2015 - 15:32:40 - перейти к сообщению
Zveryugaz Огромное спасибище. В карму плюсануть не дают, регалий не хватает )))
10. DelphinPRO - 14 Марта, 2015 - 18:31:10 - перейти к сообщению
GoDr пишет:
Может, но очень глупо так делать

Как, не считая вмешательства в исходный код страницы через инспектор?
11. GoDr - 15 Марта, 2015 - 10:10:25 - перейти к сообщению
DelphinPRO пишет:
Как, не считая вмешательства в исходный код страницы через инспектор?
А разве нельзя создать динамически любое поле с любым именем? Не обязательно же плодить только
CODE (html):
скопировать код в буфер обмена
  1.     <input name="favorites[]">
  2.     <input name="favorites[]">
  3.     <input name="favorites[]">
  4.     <input name="favorites[]">

можно же и
CODE (html):
скопировать код в буфер обмена
  1.     <input name="abrakodabra">
  2.     <input name="kukaramba">
  3.  
12. DelphinPRO - 15 Марта, 2015 - 14:11:15 - перейти к сообщению
GoDr, блин!
Кто эту абракадабру вводит? Не пользователь же, - программист. А значит программист знает, какие поля могут прийти на сервер.
13. GoDr - 15 Марта, 2015 - 16:58:15 - перейти к сообщению
Есть кнопочка "Добавить поле". Жмём и видим форму
- введите тип Инпута (type)
- введите имя Импута (name)
- введите идентификатор (id)
- введите значение (value)
- кнопочка "добавить новое поле"

И так мы имеем новое поле о котором сервер (программист) ничего не знает.. Эта информация создана динамически на клиенте
14. Мелкий - 15 Марта, 2015 - 17:34:47 - перейти к сообщению
То это плохой, негодный интерфейс. И надо держать программиста, такой написавшего, как можно дальше от пользовательского интерфейса.
Homo sapiens (не путать с Homo Logicus! (А.Купер "Психбольница в руках пациентов")) не знает, не хочет, а, главное, и не должен знать HTML.
15. GoDr - 15 Марта, 2015 - 17:44:41 - перейти к сообщению
Мелкий пишет:
То это плохой, негодный интерфейс.
та к я не против )))))))))) просто DelphinPRO не верит что такое может быть Радость

 

Powered by ExBB FM 1.0 RC1