Создание корзины заказа - Как сделать заголовок (обновить текущую страницу) - PullRequest
0 голосов
/ 09 августа 2011

Я создаю корзину заказов для таблицы продуктов.

Каждый продукт отображается вместе с кнопкой «Заказ».

Это код, относящийся к кнопке:

<form action="" method="post">
        <div>
            <input type="hidden" name="id" value="' . $prId . '" />
            <input type="submit" name="action" value="Order" />
        </div>
</form>

Этот код относится к функциональности кнопок:

if (isset($_POST['action']) and $_POST['action'] == 'Order')
{
// Add item to the end of the $_SESSION['order'] array
$_SESSION['order'][] = $_POST['id'];
header('Location: .');
exit();
}

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

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

Я бы хотел, чтобы при выборе заказа пользователь выбирал соответствующий элемент.Страница должна быть обновлена ​​с текущим поисковым термином, все еще действующим.

Вот код, относящийся к форме поиска:

<form name="search" method="post" action="'.$_SERVER['PHP_SELF'].'">
    <div>
    Search For Product: <input type="text" name="find" />
    <input type="hidden" name="searching" value="yes" />
    <input type="submit" name="search" value="Search" />
    </div>
</form>

Если кто-нибудь мог бы предоставить мне какой-либо вклад в этот вопросЯ был бы очень признателен!

Спасибо!

Ответы [ 4 ]

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

С помощью кнопки заказа вам нужно будет добавить скрытое поле, содержащее старый поисковый запрос $_POST['find']. После добавления элемента в переменную сеанса вы перенаправляете обратно на страницу поиска. При перенаправлении вам нужно будет сделать что-то вроде: header('Location: ./?find=' . $_POST['find']). Это позволит вам продолжать поиск на странице поиска (хотя вам придется учитывать тот факт, что вы можете получить значение $ _GET или $ _POST для поиска).

Вы также можете превратить функциональность кнопок в AJAX, и это, вероятно, будет лучше в долгосрочной перспективе. Таким образом, вам даже не нужно перезагружать или перемещаться со страницы поиска. Есть много способов сделать AJAX. Вы можете сделать это с нативным Javascript или с библиотекой (их много).

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

В этом случае большинство людей используют AJAX, который использует объектную модель документа (DOM) для обновления только определенных частей страницы. Если вам нужен обзор, есть хороший учебник:

http://www.tizag.com/ajaxTutorial/ajaxphp.php

Если вы пройдете весь урок, у вас будет достаточно информации для выполнения этой задачи. Это много информации, но она действительно полезна - учебник даже структурирован как форма заказа!

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

Небольшой совет: вы можете использовать что-то вроде:

$_SESSION['order'][$_POST['id']]++;

.Это будет намного проще увидеть, сколько какого-либо конкретного товара есть у пользователя в корзине.С помощью вашего метода они могут иметь более одного элемента, находящегося в разных индексах массива заказов.

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

используйте $_POST['find'] на обновленной странице.

...