[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Динамическая форма
Страницы: 1, 2
zvezda_t
Всем привет!

Уважаемые знатоки, подскажите пожалуйста, как решать подобные задачи.

На форму из массива добавляются поля, при этом одно из полей является списком. Если выбрать элемент списка, то на форму должны добавиться еще поля, при этом желательно, чтобы значения ранее заполненных полей не сбросились.
Подскажите пожалуйста, как правильно это сделать?


$arr[] ='<select name="num" onChange="return submit_form(\'myform\',this);">
<option value="2">arr2</option>
<option value="3">arr3</option>
</select> '
;
$arr[] ='<input type="text" value=1 name="test1">';
$arr[] ='<input type="text" value=2 name="test2">';

$arr2[] ='<input type="text" value="Иванов" name="name1">';
$arr2[] ='<input type="text" value="Петров" name="name2">';

$arr3[] ='<input type="text" value="1000" name="sum1">';
$arr3[] ='<input type="text" value="2000" name="sum2">';

if(!empty($_POST))
{
//запись в БД
}


<form id="myform" name="myform" metod="POST">
<?php

foreach($arr as $k=>$m)
{
echo $m;
}
?>
<input
type="submit" value="сохранить">
</form>


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
rooor
использовать массив
name="test[1]"
name="test[2]"

name="name[1]"
name="name[2]"
и т.д.

а в обработчике в цикле прогонять POST на количество элементов
Игорь_Vasinsky
$arr['name'][] = '<input name="name">';
$arr['code'][] = '<input name="code">';
$arr['name2'][] = '<input name="name2">';
$arr['select'][] = '<select name="day">';
$arr['select'][] = '<option>val1</option>';
$arr['select'][] = '<option>val2</option>';
$arr['select'][] = '</select>';
$arr['submit'][] = '<input type="submit">';


таким образом - каждый элемент формы в содержится в элементе массива с уникальным индексом

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
zvezda_t
rooor, не поняла тебя...
у меня для примера показаны все поля текстовые, на самом деле в массиве могут быть и даты и radio и еще селекты.

Игорь_Vasinsky, и каким образом в предложенный тобой массив добавиться массив arr2 или arr3 в зависимости от выбранного элемента списка?

_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Игорь_Vasinsky
а зачем массивы пичкать? создай элемент этого же массива с уникальным ключём - туда и целую форму можешь запихать

что такое форма? - html - строка

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
можно и по серьёзней структуру взять
$arr[form1][name][] = ...
$arr[form1][surname][] = ..
$arr[form2][name][] = ....
$arr[form2][date][] = ...


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
zvezda_t
Игорь_Vasinsky, ну ладно создам элемент массива - как программа узнает когда его отображать - а когда не нужно???


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Игорь_Vasinsky
кто программу пишет? кто массив формирует? ты.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
zvezda_t
Игорь_Vasinsky
блин, Игорь, так в этом то и был вопрос. как динамически массив создать...
если не отвечаешь - зачем в заблуждение вводить?

_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Игорь_Vasinsky
я вообще больше тебе отвечать не буду. пишешь пишешь. всё об стенку.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
zvezda_t
Игорь_Vasinsky
вот и поговорили sad.gif
Извини, я была груба.

_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Игорь_Vasinsky
нормально biggrin.gif

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Michael
Цитата (zvezda_t)
Если выбрать элемент списка, то на форму должны добавиться еще поля,

Если появиться они должны для пользователя в момент выбора нужного элемента списка, то делается это на javascript, а на форме они будут в диве, которому менять видимость.


_____________
There never was a struggle in the soul of a good man that was not hard
zvezda_t
Michael
спасибо, но в этом случае при отправки формы в Post запрос попадут все значения, так же?
и если вдруг пользователь заполнил сначала поля открытые для первого элемента списка, потом выбрал другой элемент списка и заполнил поля и для него...
И тогда мне перед сохранением нужно будет лишнее отсеивать самой?




_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Michael
Отсеивать ничего не надо. Придется выбирать только нужное. В зависимости от значения поля select-а какие другие поля обрабатывать. Это естественный варианта, с сохранением введенного пользователем.

_____________
There never was a struggle in the soul of a good man that was not hard
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.