как добавить в корзину неизвестный набор предметов инвентаря с указанным пользователем количеством? - PullRequest
0 голосов
/ 19 мая 2009

В настоящее время я использую PHP, JAVASCRIPT, MYSQL, XHTML, CSS для разработки своего сайта. Обратите внимание, что решения не ограничиваются этим, но предпочтительнее, если это возможно.

У меня есть большая таблица виджетов MYSQL и страница, которая позволяет пользователю искать определенный виджет.

Допустим, например, что пользователь вводит название модели для некоторого виджета, поиск может вернуть 20 различных моделей виджетов. Каждая модель виджета отличается, все они имеют свою цену за единицу виджета и название модели виджета и т. Д.

Теперь начинается сложная часть (для меня в любом случае), пользователь должен иметь возможность ввести количество рядом с нужным текстовым полем HTML виджета.

Затем пользователь сможет нажать кнопку «Добавить в корзину», в которой хранится количество и модель, с которой он связан.

(Примечание разработчика: MYSQL-запрос используется для возврата списка результатов поиска, и я использую PHP для отображения строк найденных виджетов. После каждой итерации я также отображаю текстовое поле, в которое необходимо ввести желаемое количество. ).

Моя основная проблема - выяснить, как связать имя нарисованного виджета MYSQL с количеством, введенным пользователем, и сохранить его вместе в корзине. Может ли кто-нибудь указать мне правильное направление, я не уверен, как это решить.

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

Спасибо

Ответы [ 2 ]

4 голосов
/ 19 мая 2009

делает имена текстовых полей похожими на элементы [uniq_module_id]

<input type="text" name="items[10001]">
<input type="text" name="items[10002]">
<input type="text" name="items[10003]">

тогда в php

$items = $_POST['items'];
print_r($items);

вы получите

[items] => Array
    (
        [uniq_module_id] => quantity
            ...
    )

и образец

$items = (isset($_POST['items'])) ? $_POST['items'] : array();
if (is_array($items)) {
    foreach ($items as $module_id => $quantity)
    {
        if (intval($quantity) > 0) {
            add2cart($module_id, $quantity);
        }
    }
}
0 голосов
/ 19 мая 2009

Есть ли кнопка "добавить в корзину" / ссылка в каждом виджете? Создайте кнопку / ссылку, которая отправит необходимую информацию (количество и идентификатор виджета) на add-to-cart.php.

foreach ($rows as $row) {
    // Print widget info
    echo '<input type="text" name="quantity" id="widget_' . $row['widgetID'] . '_qty" value="1">';
    echo "<button onclick=\"javascript: location.href='add-to-cart.php?widgetId=" . $row['widgetID'] . "&quantity=' + document.getElementById('widget_" . $row['widgetId'] . "_qty').value;\" value=\"Add to cart\" />";
}

Или что-то похожее. Использование Ajax также может быть хорошим решением.

...