0

したがって、私が持っているフォームではうまく機能しますが、それに価格を追加しようとして立ち往生しています。基本的に、html は次のようになります。

HTML:

<div id="rightDriver">
                    <!-- Start Form -->

                    <!-- This is the club photos -->
                    <div class="clubPhotos">
                        <div class="club">
                            <img src="clubs/img/praxispi.png" class="clubPhoto" />
                            <span class="clubTitle">Praxis PI</span>
                            <span class="clubSub">Low Launch 9.5</span>
                            <input type="checkbox" id="clubCheckbox4" class="clubCheckbox" name="DriverType" value="Praxis PI Low Launch 9.5" />

                        </div>

                        <div class="club">
                            <img src="clubs/img/praxispi.png" class="clubPhoto" />
                            <span class="clubTitle">Praxis PI</span>
                            <span class="clubSub">Mid-Low Launch 12.5</span>
                            <input type="checkbox" id="clubCheckbox1" class="clubCheckbox" name="DriverType" value="Praxis PI Mid-Low Launch 12.5" />
                        </div>
                        <div class="club">
                            <img src="clubs/img/praxispi.png" class="clubPhoto" />
                            <span class="clubTitle">Praxis PI</span>
                            <span class="clubSub">Mid-High Launch 15.5</span>
                            <input type="checkbox" id="clubCheckbox2" class="clubCheckbox" name="DriverType" value="Praxis PI Mid-High Launch 15.5" />
                        </div>
                        <div class="club last">
                            <img src="clubs/img/praxispi.png" class="clubPhoto" />
                            <span class="clubTitle">Praxis PI</span>
                            <span class="clubSub">High Launch 18.5</span>
                            <input type="checkbox" id="clubSelect" class="clubCheckbox" name="DriverType" value="Praxis PI High Launch 18.5" />
                        </div>

                        <div class="clear"></div>
                    </div>

                    <!-- This is the driver order info -->
                    <div class="clubForm">
                        <span class="heading">Club Specs</span>
                        <select name="DriverLength" class="select">
                          <option value="" selected="selected">Driver Length</option>
                          <option value="47.5">47.5</option>
                          <option value="47">47</option>
                          <option value="46.5">46.5</option>
                          <option value="46">46</option>
                          <option value="45.5">45.5</option>
                          <option value="45">45</option>
                          <option value="44.5">44.5</option>
                          <option value="44">44</option>
                          <option value="43.5">43.5</option>
                          <option value="43">43</option>
                          <option value="42.5">42.5</option>
                          <option value="42">42</option>
                        </select>

                        <select name="DriverShaft" class="select">
                          <option value="" selected="selected">Select Shaft</option>
                           <option value="LE- light weight graphite weakest flex">LE- light weight graphite weakest flex</option>
                          <option value="LW- Light weight graphite weak flex">LW- Light weight graphite weak flex</option>
                          <option value="LM- Light weight graphite medium flex">LM- Light weight graphite medium flex</option>
                          <option value="LR- Light weight graphite regular flex">LR- Light weight graphite regular flex</option>
                          <option value="GR- Medium weight graphite regular flex">GR- Medium weight graphite regular flex</option>
                          <option value="SS- Light weight graphite stiff flex">SS- Light weight graphite stiff flex (low torque)</option>
                          <option value="TS- Medium weight graphite stiff flex">TS- Medium weight graphite stiff flex</option>
                          <option value="SX- Light weight graphite X-stiff">SX- Light weight graphite X-stiff</option>
                          <option value="KS- Light weight steel stiff flex">KS- Light weight steel stiff flex</option>
                          <option value="KR- Light weight steel regular flex">KR- Light weight steel regular flex</option>
                          <option value="DX- Heavy weight steel extra stiff">DX- Heavy weight steel extra stiff</option>
                          <option value="DS- Heavy weight steel stiff flex">DS- Heavy weight steel stiff flex</option>
                        </select>

                        <select name="DriverPured" class="select">
                          <option value="" selected="selected">PURE'd</option>
                          <option value="high">High</option>
                          <option value="low">Low</option>
                        </select>
                    </div>

                </div>

そして、レビューは次のようになります。

echo "<h3> Driver</h3>";
                echo "<hr>";
                    echo (!empty($_REQUEST['DriverType'])) ? "<div class='reviewItem'><span class='reviewTitle'>Driver:</span>{$_REQUEST['DriverType']}</div>" : "";
                    echo (!empty($_REQUEST['DriverShaft'])) ? "<div class='reviewItem'><span class='reviewTitle'>Shaft:</span>{$_REQUEST['DriverShaft']}</div>" : "";
                    echo (!empty($_REQUEST['DriverLength'])) ? "<div class='reviewItem'><span class='reviewTitle'>Length:</span>{$_REQUEST['DriverLength']}</div>" : "";
                    echo (!empty($_REQUEST['DriverPured'])) ? "<div class='reviewItem'><span class='reviewTitle'>Pured:</span>{$_REQUEST['DriverPured']}</div>" : "";

私がやりたいことは、「シャフト」に価格を追加し、それをマークされたチェックボックスの数に倍増させることです。どこから始めればよいかわかりません。シャフトの「値」に価格を追加できることはわかっていますが、シャフトの名前を「値」の数値に置き換えた場合、シャフトの名前をどのように処理するのでしょうか。ありがとうございます。

4

2 に答える 2

0

これをフォームで行うか、サーバーで行うかはよくわかりません。サーバー上にある場合は、@Orangepillの回答を参照してください。もちろん、両方を行うこともできます。

クライアントでこれを行うには、シャフトがおそらくデータベースから取得され、シャフトごとに ID があることを考慮し始めます。

したがって、値全体は必要ありません。ID を使用して行うことができます。

<option value="17">LE- light weight graphite weakest flex</option>

ここでは、その特定のシャフトの値は 17 であると想定されています。

次に、Backbone や jQuery などのライブラリを使用しない場合は、オプションに値を追加して、純粋な Javascript で取得できます。あまりきれいではありませんが (実際には Jaywalking アンチパターンのインスタンスです)、動作します:

<option value="17:45.99">LE- light weight graphite weakest flex (US$ 45,99)</option>

Javascript では、さまざまなチェックボックスを列挙して数えることができます。また、現在のシャフトを取得することもできます。

<select name="DriverShaft" class="select" id="DriverShaftId">

...

combo = document.getElementById('DriverShaftId');

value = combo.options[combo.selectedIndex].value;

// "value" is now "17:45.99"

vars  = value.split(':');

// vars[0] is "17", vars[1] is "45.99"

cost = numOfCheckedBoxes * vars[1];

これで、値を新しいフィールドに入れることができます。

document.getElementById('total').innerHTML = cost;

「合計」要素は

Your club will cost US$ <span id="total">...</span>

非常に単純なフィドル (チェックボックスがバインドされていないことに注意してください。チェックボックスが切り替えられたときに価格が更新されるように、おそらくそれらをバインドする必要があります) はhereです。

ただし、jQuery Javascript ライブラリを確認することをお勧めします。

要約すると、ユーザーがフォームを送信すると、(PHP 側で) Orangepill の配列へのインデックス、またはデータベース テーブルへの ID を受け取ります。そこから、すべてのシャフト情報 (価格を含む) を再度取得し、データを検証して合計を計算できます。

于 2013-07-02T21:52:13.097 に答える
0

これを実現する最も簡単な方法は、シャフト価格のルックアップ テーブルを作成することです。

<?php
$shaftPrices = array(
    "LE- light weight graphite weakest flex"=>10,
    "LW- Light weight graphite weak flex"=>10,
    "LM- Light weight graphite medium flex"=>10,
    "LR- Light weight graphite regular flex"=>10,
    "GR- Medium weight graphite regular flex"=>10,
    "SS- Light weight graphite stiff flex"=>10,
    "TS- Medium weight graphite stiff flex"=>10,
    "SX- Light weight graphite X-stiff"=>10,
    "KS- Light weight steel stiff flex"=>10,
    "KR- Light weight steel regular flex"=>10,
    "DX- Heavy weight steel extra stiff"=>10,
    "DS- Heavy weight steel stiff flex"=>10);

次に、選択したシャフトの価格を取得するには、次のことができます

$shaftPrice = $shaftPrices[$_POST["DriverShaft"]];
于 2013-07-02T21:48:35.457 に答える