0

私がやろうとしているのは、選択したオプションに基づいて合計価格を更新することです。初期価格はセッション変数から取得されます。Javascript に渡す変数を取得しましたが、フォームを使用するときにその数値を加算/減算できないようです。

私は何が欠けていますか?

助けてくれてありがとう。

    <script>
    $(document).ready(function()
    {   

var phonePrice = "<?php echo $q2; ?>";
var total = phonePrice;

function calcTotal()
{
    $("input:checked").each(function()
    {
        //This happens for each checked input field
        var value = $(this).attr("value");
        total += parseInt(value); 
    });
}

//This happens when the page loads
calcTotal();    
$("form").before('<p class="total">Total: <strong>' + total + '</strong></p>');
$(":submit").before('<p class="total">Total: <strong>' + total + '</strong></p>');

$("input:checkbox, input:radio").click(function()
{
    total = phonePrice;
    calcTotal();
    $("p.total").html("Total: <strong>" + total + "</strong>");
});
    });
    </script>

フォームは次のようになります

    <form action="" method="post">
<fieldset id="delivery_speed">
    <legend>Options
    </legend><ol>
        <li>
            <input type="radio" name="speed" id="speed_1day" value="49" />
            <label for="speed_1day">Option 1 ($49)</label>
        </li>
        <li>
            <input type="radio" name="speed" id="speed_3days" value="0" checked />
            <label for="speed_3days">Option 2 (no charge)</label>
        </li>
        <li>
            <input type="radio" name="speed" id="speed_5days" value="-39" />
            <label for="speed_5days">Option 3 (-$39)</label>
        </li>
    </ol>
</fieldset> 
<fieldset id="browser_support">
    <legend>Additional Choices</legend>
    <p>
        <input type="checkbox" name="browser" id="browser" value="100" />
        <label for="browser">Checkbox 1 ($100)</label>
    </p>
</fieldset>
<p><input id="submit" type="submit" value="Continue to Checkout &gt;&gt;"></p>
    </form>
4

3 に答える 3

2
var phonePrice = "<?php echo $q2; ?>";

レンダリング時にphpコードが次のようなものを吐き出すと仮定します。

var phonePrice = "99.99";

引用符は、数値ではなく文字列になります。引用符を削除すると、正しく追加される番号が得られます。

var phonePrice = <?php echo $q2; ?>;
于 2012-05-12T23:19:57.767 に答える
1

から引用符を削除しますphonePrice

var phonePrice = <?php echo $q2; ?>;
于 2012-05-12T23:22:33.817 に答える
0

問題はあなたがするときですtotal += parseInt(value)。として定義するphonePriceので

var phonePrice = "<?php echo $q2; ?>";

文字列の連結は行いますが、合計は行いません。

値の引用符を外す必要があります

var phonePrice = <?php echo $q2; ?>;

または別の型変換を追加します。

var phonePrice = parseInt("<?php echo $q2; ?>", 10);
于 2012-05-12T23:22:15.270 に答える