Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Удаляется не то что надо
Форумы портала PHP.SU » » Вопросы новичков » Удаляется не то что надо

Страниц (1): [1]
 

1. Джек - 16 Октября, 2013 - 16:35:11 - перейти к сообщению
Подскажите почему у меня удаляется последний элемент, а не тот который я указываю
вот код вывода товаров
PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset ($_SESSION['products'])) {
  3. foreach ($a as $v1) {
  4. $id = $v1['id'];
  5. $name = $v1['title'];
  6. $count = $v1['count'];
  7. $price = $v1['price'];
  8. $total_tovar = $v1['total_tovar'];
  9. echo '<tr style="background-color:gray;">';
  10. echo '<td style="padding-left:5px;">'.$name.'</td>';
  11. echo '
  12. <td style="text-align:center;">
  13. <input type="hidden" name="'.$id.'" value="'.$name.'"/>
  14. <input type="hidden" name="'.$id.'" value="'.$price.'"/>
  15. <input type="hidden" name="id" value="'.$id.'"/>
  16. <input type="text" name="'.$id.'" value="'.$count.'"/>
  17. <input type="submit" name="'.$id.'" id="'.$id.'" value="Удалить"/>
  18. </td>
  19. ';
  20. echo '<td style="text-align:center;">'.$price.' руб.</td>';
  21. echo '<td style="text-align:center;">'.$total_tovar.' руб.</td>';
  22. echo '</tr>';
  23. }
  24. echo '</table>';
  25. echo '<input style="margin-left:9px; margin-top:75px; position:absolute;" type="submit" name="update" value="Пересчитать"/>';
  26. echo '</form>';
  27. echo '<div style="background-color:gray; margin-left:10px; line-height:10px; max-width:180px; border:solid black 1px; height:70px; font-size:17px; font-weight:bold; color:white;">
  28. <p style="padding-left:15px;">Товаров: '.$_SESSION['total_count'].'</p>
  29. <p style="padding-left:15px;">Сумма: '.$_SESSION['total'].' руб</p>
  30. </div>';
  31.  

вот код который обрабатывает удаление товара
PHP:
скопировать код в буфер обмена
  1.  
  2. $prod_id = $_POST['id'];
  3.   if (isset($_POST[$prod_id])){
  4.         unset ($_SESSION['products'][$prod_id]);
  5. }
  6.  
2. avtor.fox - 16 Октября, 2013 - 16:54:03 - перейти к сообщению
Джек, возможно, что name='id' переопределяется.
3. ugin_root - 16 Октября, 2013 - 16:59:52 - перейти к сообщению
Атрибут name должен изменяться у каждого элемента формы иначе он переопределяется
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. echo '
  3.         <td style="text-align:center;">
  4.                 <form action="?delete">
  5.                         <input type="hidden" name="name" value="'.$name.'"/>
  6.                         <input type="hidden" name="price" value="'.$price.'"/>
  7.                         <input type="hidden" name="id" value="'.$id.'"/>
  8.                         <input type="text" name="count" value="'.$count.'"/>
  9.                         <input type="submit" value="Удалить"/>
  10.                 </form>
  11.         </td>
  12. ';


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if(isset($_GET['delete'])){
  3.         unset ($_SESSION['products'][$_GET['delete']]);
  4. }
4. Джек - 17 Октября, 2013 - 08:19:06 - перейти к сообщению
спс разобрался
А есть возможность как то уменьшить колличество форм, а то уж много так получается + ко всему будет кнопка пересчет корзины, ее получается тоже в форму надо запихивать только уже в общую.

 

Powered by ExBB FM 1.0 RC1