Создание системы заказа - проблема, когда к заказу добавляется только один из множества возможных элементов - PullRequest
0 голосов
/ 15 августа 2011

У меня проблема со скриптом, который управляет системой заказов, которую я создаю.

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

Теперь проблема в следующем.

Если пользователь ищет строку, которая возвращает, скажем, 5 результатов.

Затем пользователь решает, что он хотел бы добавить 3 из одного результата и 2 из другого результата.

Затем они нажимают на заказ, который отправляет форму.

Здесь возникает проблема, поскольку в заказ добавляется только первый результат, для которого пользователь ввел количество.

Заказ должен содержать два предмета, один с количеством 3, а другой с количеством 2. Он этого не делает, и я понятия не имею, что здесь происходит.

Вот код, который контролирует случай, когда пользователь нажимает кнопку заказа:

if (!isset($_SESSION['order']))
{
    $_SESSION['order'] = array();
}

if (!isset($_SESSION['quantity']))
{
    $_SESSION['quantity'] = array();
}

$productQuantities=$_POST['quantity'];
if (isset($_POST['action']) and $_POST['action'] == 'Order' and $productQuantities > 0)
{
foreach($productQuantities as $productId=>$quantityS)
{
        if ($quantityS > 0) 
            {
            $_SESSION['order']["$productId"] = $productId;
            $_SESSION['quantity']["$productId"] = $quantityS;
            header('Location: .');
            exit();
            }
}
}

Кто-нибудь может увидеть, где я совершаю ошибку в этом?

Будем благодарны за любые вводимые данные, и я предоставлю любой дополнительный код по запросу.

Спасибо!

1 Ответ

1 голос
/ 15 августа 2011

Вы создаете цикл, но в первой итерации этого цикла с количеством вы отправляете заголовок Location и exit выполнение скрипта.Очевидно, что больше нельзя добавлять товары в $_SESSION после завершения сценария и отправки посетителя на другую страницу.

Не преждевременно завершайте цикл, а только отправляйте (правильный!) Заголовок местоположения после васзакончил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...