Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Колдовство innerHTML value (https://javascript.ru/forum/misc/37442-koldovstvo-innerhtml-value.html)

Kossdm 19.04.2013 20:33

Колдовство innerHTML value
 
вобщем делаю веб приложение
суть в чем из БД загружаются списки
пользователь выбирает пункт ыиз списков и указывает количество пунктов
так вот надо отправить постом эти выбраные пункты и их количество
конкретно застрял на количестве так как оно меняться может
если пункты то они либо есть либо нет. сначала количество хранил в span.innerHTML но когда дело дошло до отправки данных решил переделать на input.text.value и вот в чем проблема
если добавить пункт изменить value а потом снова добавить пункт то value всех предыдущих пунктов сбросится
все написал кое как(я ваще не бум бум)
собственно вот функции
if(!document.getElementById(idp)) {
spisokinc++;
document.getElementById('inc').value = spisokinc;
document.getElementById('spisokzakaza').innerHTML+='<tr id='+idp+'s> <td width=500><input style="border: 0px; width: 300px" type="text" name="punktname'+spisokinc+'" id='+idp+' value="'+punkt+'"></td><td width=30> <input style="border: 0px; width: 20px" type="text" name="punktkol'+spisokinc+'"  id="'+idp+'colvo" value="1"/><span>шт.</span></td><td width=300><input type=button class=buttons value=\'-\' onclick=\'zakazeleminc("'+idp+'colvo")\'/><input type=button class=buttons value=\'+\' onclick=\'zakazelemdec("'+idp+'colvo")\'/><input type=button class=buttons value=\'удалить\' onclick=\'zakazelemdel("'+idp+'s")\'/></td></tr>';
}
else {
document.getElementById(idp+'colvo').value++;
}
function zakazeleminc(elemz) { //функция увиличения количества продукта в заказе
if(document.getElementById(elemz).value!=='1') {
document.getElementById(elemz).value--;
}
}
function zakazelemdec(elemz) { //функция уменьшения количества продукта в заказе
document.getElementById(elemz).value++;
}

вот для наглядности картинка ещеhttp://vk.com/photo23335989_302257698

danik.js 20.04.2013 07:07

Недавно отвечал на подобный вопрос. Нужно просто дать имена элементам формы вроде myfield[] - таким образом на стороне сервера можно получить массив (в php точно):
$fields = $_POST['myfield']; var_dump($fields);// array


Если среди элементов есть чекбоксы, то придется проставлять индексы
myfield[1], myfield[2] и тд. Причем добавление строки обычно организовывается как клонирование уже существующей (row.cloneNode(true) ) а не через innerHTML.

Kossdm 20.04.2013 07:24

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

Kossdm 20.04.2013 07:37

Да работает за var_dump огромное спасибо, решилась задача с приемом не определенного количества переменных.

как передать переменные не используя input или как передать данные содержащиеся в span

Kossdm 20.04.2013 07:55

Все, проблема решена.
Использую textarea этот элемент передает параметр из innerHTML


Часовой пояс GMT +3, время: 06:36.