[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: динамические поля
NoCash
доброго времени суток.
столкнулся с токим вот вопросиком на форме есть 1 инпут при нажатии на кнопку появляется еще один и т.д значения в базу заносятся работает все хорошо. НО подскажите как можно усовершенствовать записи, а то очень уж не удобно каждый раз давай новое имя для инпута и получать потом его методом пост наверняка можно сделать это как нить намного удобнее
<?php
$gnl_phone = $_POST['gnl_phone'];
$gnl_mail = $_POST['gnl_mail'];
$gnl_division = $_POST["gnl_division"];
$gnl_phone1 = $_POST['gnl_phone1'];
$gnl_mail1 = $_POST['gnl_mail1'];
$gnl_division1 = $_POST["gnl_division1"];
?>


<script>
function add_sub()
{
var newElem=document.getElementById('tab');//новый элемент страницы (TABLE)
newElem.border=0;//толщина рамки таблицы
var newRow=newElem.insertRow(2);//добавляю строку в созданной таблице
var newCell = newRow.insertCell(0);//в созданной строке добавляю столбец
newCell.width="200";//указываю длину столбца
newCell.height="40";
newCell.align="center";//указываю позиционирование
newCell.innerHTML='<input type="text" name="gnl_division1" size="40%">';//заполняю ячейку жирным текстом
var newCell = newRow.insertCell(-1);// Рё С‚.Рґ.
newCell.width="400";
newCell.align="center";
newCell.innerHTML='<input type="text" name="gnl_phone1">';//заполняю ячейку текстом
var newCell = newRow.insertCell(-1);// Рё С‚.Рґ.
newCell.width="400";
newCell.align="center";
newCell.innerHTML='<input type="text" name="gnl_mail1">';//заполняю ячейку текстом
addElem.appendChild(addText);
newCell.appendChild(addElem);
document.appendChild(newElem);//прописываю созданную таблицу на стран
}
</script>


........
$text .="
<tr><td class='forumheader3' ><input type='text' name='gnl_division' value='"
.$validator->element_value('gnl_division')."' size='40%'></td>
<td class='forumheader3' ><input type='text' name='gnl_phone' value='"
.$validator->element_value('gnl_phone')."' ></td>
<td class='forumheader3' ><input type='text' name='gnl_mail' ></td></tr>
</table>
<input type='button' class='submit' name='add_subcat' value='add otdel' style='align:top' onclick='add_sub()'>
<input type='submit' class='submit' name='ab_submit2' value='submit' >"
;
$text .="</form>";




Спустя 52 минуты, 38 секунд (14.05.2010 - 09:35) NoCash написал(а):
хотя новерно никто не понял что мне нужно)) задам так сказать наводящий вопрос как из динамических полей записать значение в базу ?

Спустя 2 часа, 8 минут, 37 секунд (14.05.2010 - 11:44) Basili4 написал(а):
Точно также как и не из динамических передвай значения в строго определеном порядке в массиве например 1 эл. 1 поле 2 эл. - 2 поле и тд.

Спустя 3 минуты, 59 секунд (14.05.2010 - 11:48) waldicom написал(а):
Делал себе функцию типа getPostVariables($_POST), динамические элементы формы создавались (а соответственно и передавались) с определенным префиксом. Как нашел такой префикс - это твое динамическое поле.

Спустя 43 минуты, 21 секунда (14.05.2010 - 12:31) NoCash написал(а):
Basili4
я так и делаю проблемма в том что динамические поля создаются с одинаковым именем поэтому в базу записывается только последнее значение. если не сложно подскажите как можно создать динамические поля с разными именами(ну это если я в то направление вас понял rolleyes.gif )

Спустя 26 минут, 48 секунд (14.05.2010 - 12:58) Basili4 написал(а):
вобщем так var i=0;

........
k='<input type="text" value="" name="inputname'+i+'" />';
i++;
....

а принимаете так проверяете сущ переменый

while (@$_POST["inputname$i"]) // есть переменная
{
//проверяем значения и пишем в базу
...
$i++;
}


Спустя 1 час, 29 минут, 40 секунд (14.05.2010 - 14:27) NoCash написал(а):
блин не получается( добавляю таким вот способом

while (@$_POST["gnl_phone1$i"]) // есть переменная
{
$sql2 -> db_Insert("ab_gnl", "0, '$cat_id', '".@$_POST["gnl_phone1$i"]."'");
$i++;
}

добавляет опять же только одно значение второе или третье не добавляет(

Спустя 8 минут, 57 секунд (14.05.2010 - 14:36) Basili4 написал(а):
'$cat_id' - Судя по всему должен быть в двойный кавычках Но дело не в этом передавайте методом GET смотрите в скрипт все приходит может отправляется только 1 input.

Спустя 9 минут, 44 секунды (14.05.2010 - 14:46) NoCash написал(а):
вывел принтом. действительно отправляется только один инпут(
создаю инпуты javascript'ом вот так вот
var i=0;
var newElem=document.getElementById('tab');//новый элемент страницы (TABLE)
newElem.border=0;//толщина рамки таблицы
var newRow=newElem.insertRow(2);//добавляю строку в созданной таблице
var newCell = newRow.insertCell(0);//в созданной строке добавляю столбец
newCell.width="200";//указываю длину столбца
newCell.height="40";
newCell.align="center";//указываю позиционирование
newCell.innerHTML='<input type="text" name="gnl_division1'+i+'" size="40%">';//заполняю ячейку жирным текстом
var newCell = newRow.insertCell(-1);// Рё С‚.Рґ.
newCell.width="400";
newCell.align="center";
newCell.innerHTML='<input type="text" name="gnl_phone1'+i+'">';//заполняю ячейку текстом
var newCell = newRow.insertCell(-1);// Рё С‚.Рґ.
newCell.width="400";
newCell.align="center";
newCell.innerHTML='<input type="text" name="gnl_mail1'+i+'">';//заполняю ячейку текстом
addElem.appendChild(addText);
newCell.appendChild(addElem);
document.appendChild(newElem);//прописываю созданную таблицу на стран
i++;

Спустя 22 часа, 21 минута, 19 секунд (15.05.2010 - 13:07) NoCash написал(а):
понял что тут лучше использовать foreght и пришел к такой вот проблемме, в базу добавляется но по несколько раз каким то произвольным методом.
гляньте на код скажите где накосячил

foreach ($_POST["gnl_phone1"] as $value)
foreach ($_POST["gnl_mail1"] as $value1)
foreach ($_POST["gnl_division1"] as $value2)
$sql2 -> db_Insert("ab_gnl", "0, '$cat_id', '$value', '$value1', '$value2'" );
Быстрый ответ:

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