Колдовство 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 |
Недавно отвечал на подобный вопрос. Нужно просто дать имена элементам формы вроде myfield[] - таким образом на стороне сервера можно получить массив (в php точно):
$fields = $_POST['myfield']; var_dump($fields);// array Если среди элементов есть чекбоксы, то придется проставлять индексы myfield[1], myfield[2] и тд. Причем добавление строки обычно организовывается как клонирование уже существующей (row.cloneNode(true) ) а не через innerHTML. |
Спасибо за идею
Но не в этом проблема данные постом передаются, там где есть значение value (тоесть если числа будут в span то они не передадутся) а дело в том что когда я функцией инкрементирую значение в поле value а потом добавляю еще один пункт то значение которое я изменял, сново сбрасывается. можно конечно сначала выбрать пункты а потом изменить значения, но такой вариант не устраивает. так вот почему значения сбрасываются? |
Да работает за var_dump огромное спасибо, решилась задача с приемом не определенного количества переменных.
как передать переменные не используя input или как передать данные содержащиеся в span |
Все, проблема решена.
Использую textarea этот элемент передает параметр из innerHTML |
Часовой пояс GMT +3, время: 06:36. |