Member 14079832 Ответов: 1

Как получить доступ к данным динамических созданных текстовых полей


Я создал страницу в html,где динамически добавлял текстовые поля (товар, цена и количество). Затем у меня есть кнопка для расчета цены,поэтому я хотел бы вернуть всю информацию обратно в текстовые поля после того, как я закончу расчет цен, а также вернуть товар, цену и количество обратно в текстовые поля.

Что я уже пробовал:

Это веб-страница.

<HTML>
<голова>
в <название>у THABOERA это решение&ЛТ;/название&ГТ;
<LINK href="style.css" rel="stylesheet" type="text/css" />
<SCRIPT src="http://code.jquery.com/jquery-2.1.1.js"></скрипт>
<скрипт>
функция addMore() {
$("<DIV>").load("input.php", функция() {
$("изделие#").функции append($(это).HTML-код());
});
}
функция вызова метода deleterow () {
$('DIV.product-item').each(функция(ИНДЕКС, элемент){
jQuery(':checkbox', this).each(функция () {
если ($(это).это(':проверено')) {
$(элемент).удалить();
}
});
});


}


функция getValues()
{
//var items= массив();
//var item = document.getElementById("item").value;

var count = $(":input[id^=item]").длина;
$("#item").each(функция () {
номенклатура += $(это).функция val() + "\Н";
});
ВАР i;
// var feild + = $(this).val();

// for(i = 0;i < count;i++){
//var item = document.getElementById("item").value;

//товар = товар;
предупреждение(пункт);
//alert(фейлд);
// пункт++;
// }

вернуть true;
}
</SCRIPT>
</HEAD>
<тело>
<имя формы="frmProduct" метод="post" действие="index.php">
<DIV id="внешний">
<DIV id="заголовок">
<div class="input-group">

<стиль этикетки="ширина:150 пикселей;размер шрифта:16px и;шрифт-вес:смелые;левое поле:30 пикселей;"&ГТ;имя клиента&ЛТ;/ярлык&ГТ;&ЛТ;/БР>
в <тип входного="текст" имя="клиент" идентификатор="верс" параметр maxlength="100" стиль="маржа налево:14px;"значение="&ЛТ;?в PHP //Эхо $ватп ?&и GT;" &ГТ;

</div>
<div class="input-group">

&ЛТ;метка стиль="ширина:150 пикселей;размер шрифта:16px и;шрифт-вес:смелые;левое поле:30 пикселей;"&ГТ;Контактное лицо&ЛТ;/ярлык&ГТ;&ЛТ;/БР>
в <тип входного="текст" имя="человек" идентификатор="верс" параметр maxlength="100" стиль="маржа налево:14px;"значение="&ЛТ;?в PHP //Эхо $ватп ?&и GT;" &ГТ;

</div>
<div class="input-group">

<этикетка style="width:150px;font-size:16px;font-weight:bold;margin-left:30px;">Phone</label></br>
в <тип входного="текст" имя="телефон" идентификатор="верс" параметр maxlength="100" стиль="маржа налево:14px;"значение="&ЛТ;?в PHP //Эхо $ватп ?&и GT;" &ГТ;

</div>
<div class="input-group">

<этикетка style="width:150px;font-size:16px;font-weight:bold;margin-left:30px;">Email</label></br>
в <тип входного="текст" имя="отправить" идентификатор="верс" параметр maxlength="100" стиль="маржа налево:14px;"значение="&ЛТ;?в PHP //Эхо $ватп ?&и GT;" &ГТ;

</div>
&ЛТ;див класс="поплавка-влево"&ГТ;&ампер;усилитель; nbsp;&ЛТ;/дел&ГТ;
&ЛТ;див класс="флоат-левый кол-рубрика" стиль="маржи-левой:30 пикселей;">в пункт &ЛТ;/дел&ГТ;
&ЛТ;див класс="флоат-левый кол-рубрика" стиль="маржи-левой:30 пикселей;">По цене&ЛТ;/дел&ГТ;
&ЛТ;див класс="флоат-левый кол-рубрика" стиль="маржи-левой:30 пикселей;"&ГТ;цвет&ЛТ;/дел&ГТ;
</DIV>
<DIV id="продукт">
<?php require_once("input.php");
для ($Я = 0; Я &л; $значении itemcount;$я++)
{
?>
&ЛТ;див класс="флоат-левой" стиль="маржа:авто;" &ГТ;&ЛТ;тип входного="флажок" название="item_index[]" /&ГТ;&ЛТ;/дел&ГТ;
&ЛТ;див класс="поплавка-влево"и GT; в<тип входного="текст" идентификатор="номенклатура" имя="item_name[]" значение = "&ЛТ;?PHP Эхо $предмет[$я] ?&и GT;" /&ГТ;&ЛТ;/дел&ГТ;

&ЛТ;див класс="поплавка-влево"и GT; в<тип входного="текст" имя="item_price[]" значение = "&ЛТ;?PHP Эхо $цена[$я] ?&и GT;" /&ГТ;&ЛТ;/дел&ГТ;
&ЛТ;див класс="поплавка-влево"и GT; в<тип входного="текст" имя="количество[]" значение = "&ЛТ;?PHP Эхо $количество[$я] ?&и GT;" /&ГТ;&ЛТ;/дел&ГТ;&ЛТ;БР&ГТ;


<?php

}


?>




</DIV>

&ЛТ;див класс="БТН-действие поплавка-ясный"и GT;
в <тип входного="закладку" название="add_item" значение="добавить" функция onclick="addMore();" /&ГТ;
в <тип входного="закладку" название="del_item" значение="удалить" функция onclick="вызова метода deleterow();" /&ГТ;
&ЛТ;промежуток класс="успех"&ГТ;&ЛТ;?PHP, если(использования isset($сообщение)) { Эхо $сообщение; }?&ГТ;&ЛТ;/службы&ГТ;
</DIV>


<div class="input-group">

<стиль этикетки="ширина:150 пикселей;размер шрифта:16px и;шрифт-вес:смелые;левое поле:30 пикселей;"и GT;НДС&ЛТ;/ярлык&ГТ;&ЛТ;/БР>
в <тип входного="текст" имя="верс" идентификатор="верс" параметр maxlength="100" стиль="маржа налево:14px;"значение="&ЛТ;?в PHP //Эхо $ватп ?&и GT;" &ГТ;&ЛТ;стиль этикетки="ширина:150 пикселей;размер шрифта:16px и;шрифт-вес:смелый;"> В%&ЛТ;/ярлык&ГТ;

</div>

<div class="кнопка">
в <тип входного="отправить" идентификатор="калькулятор" название="отправить" значение="рассчитать" стиль="фон-цвет:зеленый;цвет:белый;шрифт-вес:смелые;маржа налево:14px;" функция onclick="возвращение getValues()"&ГТ;
</div>

<div class="input-group">
<стиль этикетки="ширина:150 пикселей;размер шрифта:16px и;шрифт-вес:смелые;левое поле:30 пикселей;"&ГТ;общая цена&ЛТ;/ярлык&ГТ;&ЛТ;/БР>
&ЛТ;метка стиль="ширина:150 пикселей;размер шрифта:16px и;шрифт-вес:смелый;"&ГТ;Р&ЛТ;/ярлык&ГТ;&ЛТ;тип входного="текст" имя="сумма" параметр maxlength="100" значение="&ЛТ;?PHP Эхо number_format((поплавка)$переопределению,2,'.',") ?&и GT;"&ГТ;

</div>

<div class="input-group">
<стиль этикетки="ширина:150 пикселей;размер шрифта:16px и;шрифт-вес:смелые;левое поле:30 пикселей;">По цене с НДС&ЛТ;/ярлык&ГТ;&ЛТ;/БР>
&ЛТ;метка стиль="ширина:150 пикселей;размер шрифта:16px и;шрифт-вес:смелый;"&ГТ;Р&ЛТ;/ярлык&ГТ;&ЛТ;тип входного="текст" имя="НДС" параметр maxlength="100" значение="&ЛТ;?PHP Эхо number_format((поплавка)$НДС,2,'.',") ?&и GT;"&ГТ;

</div>
<?php //number_format((float)$foo, 2, '.', ") ?>
<div class="input-group">
&ЛТ;метка стиль="ширина:150 пикселей;размер шрифта:16px и;шрифт-вес:смелые;левое поле:30 пикселей;"&ГТ;общая сумма&ЛТ;/ярлык&ГТ;&ЛТ;/БР>
&ЛТ;метка стиль="ширина:150 пикселей;размер шрифта:16px и;шрифт-вес:смелый;"&ГТ;Р&ЛТ;/ярлык&ГТ;&ЛТ;тип входного="текст" имя="сумма" параметр maxlength="100" значение="&ЛТ;?PHP Эхо number_format((поплавка) долл,2,'.',") ?&и GT;"&ГТ;

</div>


<DIV class="нижний колонтитул">
в <тип входного="отправить" название="сохранить" значение="сохранить" /&ГТ;
</DIV>
</DIV>
</форма>
</BODY>
</HTML>



Это и есть input.php файл для динамического доступа к входным данным create

&ЛТ;див класс="продукт-товар поплавок-понятно" стиль="ясно:как;"&ГТ;
&ЛТ;див класс="поплавка-влево"&ГТ;&ЛТ;тип входного="флажок" название="item_index[]" /&ГТ;&ЛТ;/дел&ГТ;
&ЛТ;див класс="поплавка-влево"и GT; в<тип входного="текст" идентификатор="номенклатура" имя="item_name[]" /&ГТ;&ЛТ;/дел&ГТ;
&ЛТ;див класс="поплавка-влево"и GT; в<тип входного="текст" имя="item_price[]" /&ГТ;&ЛТ;/дел&ГТ;
&ЛТ;див класс="поплавка-влево"и GT; в<тип входного="текст" имя="количество[]" /&ГТ;&ЛТ;/дел&ГТ;
</DIV>


ЭТО PHP ДЛЯ РАСЧЕТА

<?php

$ватп = 0.00;

$НДС = 0.00;

$цена =0.00;
$itemValues=0;

$Переопределению = 0.00;
$overide2 ="";
$itemCount =0;
$item[$itemCount] = "";
if(isset($_POST['submit']))
{

$itemCount = count($_POST["item_name"]);
$clients[$itemCount] = "";
$item[$itemCount] = "";
$quantity[$itemCount] = 0.00;
$цена[$значении itemcount] = 0.00;
$ватп = 0.00;
$totalPrice[$itemCount] = 0.00;
$НДС = 0.00;
$TOTAL[$itemCount] =0.00;
$цена =0.00;
$itemValues=0;
$subTotal[$itemCount] = 0.00;
$цена[$значении itemcount] = 0.00;
$Переопределению = 0.00;
$overide2 ="";

для($Я=0; Я&л;$значении itemcount;$я++) {
//если(!пустой($_POST, где["item_name"][$я]) || !пустой($_POST, где["item_price"][$я])||!пустой($_POST, где["количество"][$я])) {

//$clients = $_POST['клиенты'];
$предмет[$я] = $_POST, где["item_name"][$я];
$quantity[$i] = $_POST["количество"][$i];
$actualPrice[$i] = $_POST["item_price"][$i];
$vatP = $_POST['perc'];
// $промежуточный итог =0.00;
//$в целом=0.00;

$subTotal[$i] = $actualPrice[$i] * 0.10;
$unitPrice[$i] = $actualPrice[$i] + $subTotal[$i];
$vatPerc = $vatP / 100;

$totalPrice[$i] = $unitPrice[$i] * $quantity[$i];

$vat = $totalPrice[$i] * $vatPerc;

$TOTAL[$i] = $totalPrice[$i] + $vat;

$Переопределению = $общая[$я];
$itemValues++;
//echo number_format((float)$TOTAL,2,'.',")

//echo "ITEM: ".$item[$i]." Итого: ".number_format((float)$TOTAL[$i],2,'.',")." НДС: ".number_format((float)$vat,2,'.',")." Промежуточный итог : ".number_format((float)$totalPrice[$i],2,'.',")."</br>";
if($itemCount > 1)
{
$цена = $общий + $общая[$я];
}
еще
{
$Total = $TOTAL[$i];
}
$overide2 = $item[$i];

//echo "общий итог" . number_format((float)$overall,2,'.',");

//}
// $itemValues++;


}
//echo "общий итог" . number_format((float)$overall,2,'.',");





}

?>

1 Ответов

Рейтинг:
11

W∴ Balboos, GHB

Я не собираюсь читать весь этот код. Ответ работает одинаково в любом случае:

1 - Когда вы генерируете элемент управления, дайте ему идентификатор (имя, если оно находится в форме)
2 - эти идентификаторы должны быть сериализованы (то есть пронумерованы по порядку)

например: item_1, item_2, item_3, . . .

3 - Следите за количеством и обновляйте (скрытый) элемент управления с помощью счетчика каждый раз, когда вы делаете элемент управления.

Теперь у вас есть счетчик, и к ним можно получить доступ с помощью javascript и php, построив идентификатор (или имя) и используя его в качестве индекса. Начальное и конечное значения обрабатываются сохраненным вами значением счета.

Просто как не-динамически созданные элементы управления