хорошо, им новый на этом сайте также новый в php и не может получить логику по этому поводу,
У меня есть страница продукта, которая показывает имя, количество и кнопку добавления в корзину в каждой строке продукта
я сделал это просто отрезанный от некоторого кода
while($showProducts = mysql_fetch_array($products)) { $currenQuantity = $showProducts['current_quantity']; $prodid = $showProducts['product_id']; echo"<select name='quan'>"; for ($x=0;$x<=$currenQuantity;$x++) { if($currenQuantity != 0) { echo "<option value=$x> $x </option>"; } } echo"</select><br/>"; }
теперь проблема возникает каждый раз, когда я пытаюсь получить значение с помощью $ _POST ['quan'] значение, которое я всегда получаю, является значением по умолчанию 1, даже я выбираю другое значение количества определенного продукта, и я закрыт с идеями.
Вы не можете использовать одно и то же имя для поля ввода / выбора в форме. Вы должны указать другое имя или создать индексированный массив:
<select name="quan[$prodid]">
Вы можете получить его через
$_POST['quan'][$prodid]
Просто дикая догадка: есть ли у каждой из ваших рядов продукта под названием «quan»? Затем вы получаете последний выбор «quan» в своих данных POST.
Префикс каждой из величин выбирает имя продукта или какой-либо (скремблированный) идентификатор.
Кроме того: если вы не хотите иметь 0 в своем выборе, не начинайте цикл for с 0
for ($x=1;$x<=$currenQuantity;$x++)
если текущая величина равна 0, цикл for не выполняется.
Если в одной форме у вас больше наборов с одним и тем же именем (quan), вы получаете значение последнего.
Вы должны изменить определение selectbox следующим образом:
echo"<select name='quan[" . $prodid . "]'>";
то вы можете получить доступ к значениям, используя:
$_POST["quan"][$some_product_id] $_POST["quan"][$another_product_id]