Выпадающее меню php multiple с одинаковым именем не может получить значение

хорошо, им новый на этом сайте также новый в 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]