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]   

> Описание: вот вопрос
obi-wan
Отправлено: 11 Октября, 2007 - 08:06:22
Post Id


Новичок


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


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




Добрый день!
Есть таблица записей, которые можно отмечать галочками и потом с отмеченными производить всякие действия.
Нет проблем - создал форму, обрамляющую таблицу, и всё.

Однако внутри таблицы тоже должны быть поля для ввода, и лучше всего было бы их оформить в виде отдельных форм.

Вопрос:
В ХТМЛ вложенные формы допускаются или нет?
Или я совсем дурак, и для тех полей для ввода нужно использовать ту же самую форму, получая автоматом имена для <input>?
 
 Top
evgenijj
Отправлено: 11 Октября, 2007 - 09:29:56
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


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




obi-wan пишет:
Добрый день!
Есть таблица записей, которые можно отмечать галочками и потом с отмеченными производить всякие действия.
Нет проблем - создал форму, обрамляющую таблицу, и всё.

Однако внутри таблицы тоже должны быть поля для ввода, и лучше всего было бы их оформить в виде отдельных форм.

Вопрос:
В ХТМЛ вложенные формы допускаются или нет?
Или я совсем дурак, и для тех полей для ввода нужно использовать ту же самую форму, получая автоматом имена для < input ...>?


Ничего не понял. Куда пойти, кого позвать? Опиши подробно - с чувством, с толком, с расстановкой - какая задача стоит, что делал. Неплохо и исходники приложить.
 
 Top
obi-wan
Отправлено: 11 Октября, 2007 - 09:45:31
Post Id


Новичок


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


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




Щас расскажу.
phpMyAdmin юзали же - видели, как там работа с таблицами происходит.
Ставишь галочку на нужных строках таблицы, выбираешь действие - и оно выполняется.
Мне нужно сделать то же самое.
Можно сделать так:
PHP:
скопировать код в буфер обмена
  1.  
  2. <form ....>
  3. <table .... >
  4. ...
  5. <input type="checkbutton" name="blabla1" ...> ...
  6. ...
  7. <input type="checkbutton" name="blabla2" ...> ...
  8. ...
  9. ...
  10. </table>
  11. </form>
  12.  


И вроде никаких проблем.

Однако мне нужно, чтобы в строчках этой таблицы появлялись еще поля для ввода, например, чтобы редактировать некоторые данные в записях.

Вижу 2 варианта:
1. Использовать вложенные формы. Но можно ли это?
2. Использовать под те поля для ввода ту же самую форму. Только это не совсем удобно. Будет слишком много данных передаваться за раз из формы.

Непонятно?
 
 Top
EuGen Администратор
Отправлено: 11 Октября, 2007 - 09:47:41
Post Id


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


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


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




1.Вложенные формы в html не допускаются
2.Можно использовать JavaScript для формирования нужного запроса скрипту, если я правильно задачу понял.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
evgenijj
Отправлено: 11 Октября, 2007 - 09:58:07
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


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




Такой вариант подойдет?

http://forum.php.su/topic.php?fo...=28&topic=34
 
 Top
obi-wan
Отправлено: 11 Октября, 2007 - 10:10:31
Post Id


Новичок


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


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




Такой вариант не хочется использовать. Я поэтому этот вопрос здесь и задал.

Хочется, чтобы было вот так:

checkbox | имя 1 | характеристика 1 | характеристика 2 | ...
checkbox | имя 2 | характеристика 1 | характеристика 2 | ...
checkbox | имя 3 | характеристика 1 | характеристика 2 | ...
checkbox | имя 4 | поле для ввода 1 | поле для ввода 2 | ...
 
 Top
evgenijj
Отправлено: 11 Октября, 2007 - 10:19:47
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


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




obi-wan пишет:
Такой вариант не хочется использовать. Я поэтому этот вопрос здесь и задал.

Хочется, чтобы было вот так:

checkbox | имя 1 | характеристика 1 | характеристика 2 | ...
checkbox | имя 2 | характеристика 1 | характеристика 2 | ...
checkbox | имя 3 | характеристика 1 | характеристика 2 | ...
checkbox | имя 4 | поле для ввода 1 | поле для ввода 2 | ...


Так можно. В обработчике формы пробегаешь по массиву $_POST['id'] и для каждого элемента выполняешь запрос к БД "UPDATE ..."
PHP:
скопировать код в буфер обмена
  1.  
  2. < input type="checkbox" name="id[]" value="12" />
  3. < input type="text" name="name[]" value="name12" />
  4. < input type="text" name="description[]" value="description12" />
  5. < hr>
  6. < input type="checkbox" name="id[]" value="27" />
  7. < input type="text" name="name[]" value="name27" />
  8. < input type="text" name="description[]" value="description27" />
  9. < hr>
  10. .....................................................................
  11.  
 
 Top
obi-wan
Отправлено: 11 Октября, 2007 - 10:23:25
Post Id


Новичок


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


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




Короче, я решил ограничиться таким способом решения:
PHP:
скопировать код в буфер обмена
  1.  
  2.  <form ....>
  3.  <table .... >
  4.  ...
  5.  <input type="checkbutton" name="blabla1" ...> ...
  6.  ...
  7.  <input type="checkbutton" name="blabla2" ...> ...
  8.  ...
  9.  <input type="checkbutton" name="blabla3" ...> ... <input type="text" name="blabla3_text"> <input type="hidden" name="blabla_id" value="4"> ...
  10.  ...
  11.  ...
  12.  </table>
  13.  </form>
  14.  


Если ограничиться редактированием одной строки за раз, то проблема отпадает. Данные из checkbox передаются только если галочка стоит, а редактируется в один момент только одна строка.

Если бы нужно было редактировать несколько строк сразу, то полей для ввода бы добавилось.

Я просто хотел их в отдельные формы выделить для каждой строки, но этому мешает обрамляющая форма для checkbox'ов.\n\n(Добавление)
Спасибо
 
 Top
valenok Модератор
Отправлено: 11 Октября, 2007 - 13:52:12
Post Id



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


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


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




А я делаю вот так

checkbox | имя 1 | характеристика 1 | характеристика 2 | ...
checkbox | имя 2 | характеристика 1 | характеристика 2 | ...
checkbox | имя 3 | характеристика 1 | характеристика 2 | ...

где характеристика 1 это input value='характеристика1'

И где для каждого поля стоит onchange
который проверяет - изменилось ли значение поля от начального
Если изменилось, то записываем название поля и новое значение в hidden input или hidden textareaи только его отсылаем.

Вообще лучше использовать не onchange а onfocus и onblur записывать старое значение а потом сравнивать старое с новым.
Можно стразу передавать JS'у значениея всех полей или при загрузке страницы читать текущие значения а потом onchange сверять их, тогда если пользователь решит поменять на чтото а потом поменять обратно то это поле не отошлётся.

Это в том счлучае если вы боитесь что данных окажется слишком много.


-----
Truly yours, Sasha.
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB