0

現在、PHP、JAVASCRIPT、MYSQL、XHTML、CSS を使用してサイトを開発しています。解決策はこれに限定されませんが、可能であれば優先されることに注意してください。

ウィジェットの大きな MYSQL テーブルと、ユーザーが特定のウィジェットを検索できるページがあります。

たとえば、ユーザーがあるウィジェットのモデル名を入力すると、検索で 20 の異なるウィジェット モデルが返される可能性があります。各ウィジェット モデルは異なり、すべて独自のウィジェット単価とウィジェット モデル名などがあります。

ここでトリッキーな部分が発生します (とにかく私にとって)。ユーザーは、目的のウィジェット HTML テキスト フィールドの横に数量を入力できる必要があります。

ユーザーは、数量とモデルに関連付けられている数量を保存するカートに追加ボタンを押すことができるはずです。

(設計上の注意: MYSQL クエリを使用して検索結果のリストを返し、PHP を使用して見つかったウィジェットの行をエコー バックします。反復ごとに、必要な数量を入力するテキスト フィールドも表示します。)

私の主な問題は、MYSQL 描画されたウィジェット名をユーザーが入力した数量と関連付けて、カートに一緒に保存する方法を考え出すことです。誰かが私を正しい方向に向けることができますか、これに取り組む方法がわかりません。

ウィジェット モデルをテキスト フィールド Id にエコーできるのではないかと考えていましたが、投稿後にどのモデルに数量があったかを判断するにはどうすればよいでしょうか。

ありがとう

4

2 に答える 2

4

テキストフィールド名をitems[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);
        }
    }
}
于 2009-05-18T21:58:34.577 に答える
0

すべてのウィジェットに「カートに追加」ボタン/リンクはありますか? 必要な情報 (数量とウィジェット ID) を 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 を使用することも、おそらく良い解決策になるでしょう。

于 2009-05-18T22:07:43.000 に答える