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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Удаляется не то что надо

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Джек
Отправлено: 16 Октября, 2013 - 16:35:11
Post Id


Гость


Покинул форум
Сообщений всего: 90
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)

[+]


Подскажите почему у меня удаляется последний элемент, а не тот который я указываю
вот код вывода товаров
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.  

(Отредактировано автором: 16 Октября, 2013 - 16:35:46)

 
 Top
avtor.fox
Отправлено: 16 Октября, 2013 - 16:54:03
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




Джек, возможно, что name='id' переопределяется.
 
 Top
ugin_root
Отправлено: 16 Октября, 2013 - 16:59:52
Post Id


Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Май 2011  
Откуда: Киргизия


Помог: 5 раз(а)




Атрибут 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. }

(Отредактировано автором: 16 Октября, 2013 - 17:02:12)

 
 Top
Джек
Отправлено: 17 Октября, 2013 - 08:19:06
Post Id


Гость


Покинул форум
Сообщений всего: 90
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)

[+]


спс разобрался
А есть возможность как то уменьшить колличество форм, а то уж много так получается + ко всему будет кнопка пересчет корзины, ее получается тоже в форму надо запихивать только уже в общую.

(Отредактировано автором: 17 Октября, 2013 - 08:40:06)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB