我一直试图这样做几天,但我似乎无法使其发挥作用。 我想根据用户选择的鞋码改变价格。但我需要知道checkout.php上的选择大小。我的checkout.php已经开始工作但是我需要获得这个尺寸的尺寸和奖品。在选择选项中,我已经指出价格和价格的大小。请帮助。
<div class="content_half float_r">
<form id="add2cart" name="cart" method="Post" action="<?php fetchdir($bpages); ?>cart.php">
<table>
<tr>
<td width="160">Price:</td>
<td name="price" id="price"><?php echo $row ['Start_Cost']; ?></td>
</tr>
<tr>
<td for="size" width="160">size*:</td>
<td>
<select name="size" class="small" id ="size">
<option value="">12 size</option> // the price tag already have the start_Cost for this size
<option value="">14 size(£30.00)</option>
<option value="">16 size(£35.00)</option>
<option value="">18 size(£40.00)</option>
<option value="">20 size(£45.00)</option>
<option value="">22 size(£55.00)</option>
<option value="">24 size(£60.00)</option>
<option value="">26 size(70.00)</option>
<option value="">28 size(£80.00)</option>
</select>
</td>
</tr>
<tr>
// you choose size
<td> size: // the size the person choose will go down here
</td>
</tr>
<tr>
<td>Quantity</td>
<td><input type="text" name="Qty" value="1" style="width: 20px; text-align: right" /></td>
</tr>
</table>
<div class="cleaner h20"></div>
<input type="hidden" name="pid" id="id" value="<?php echo $id; ?>" />
<input type="Submit" class="button" name="button" id="button" value="Add to shopping cart"/>
</form>
</div>
答案 0 :(得分:1)
首先,您可能只想通过将鞋子尺寸提供给选项的值属性来发送鞋码。选项内的文本只是一个标签。
<option value="12">12 size</option>
第二也是最重要的:你永远不会希望客户告诉你价格是多少!决不!如果黑客出现,他可以轻松提交大小设置为12并且价格设置为0的表单。您不想免费发送这些表单吗?哈克,如果他发送负值,甚至可能要退还给他。因此,请修改您的PHP脚本以从内部数组或其他东西计算/查找价格。或者确保至少彻底验证输入。
要更新价格,您可以使用jQuery.ajax调用一个简单的鞋子大小并返回价格的PHP脚本。 我的意思是看jsFiddle这个{{3}}。您必须使用您的新PHP脚本替换ajax URL。阅读ajax文档,了解如何正确传递输入和输出数据。在写入数据之前,您还可以将价格乘以数量。
答案 1 :(得分:0)
以下是您的工作示例 LIVE DEMO 。
请注意我添加<span>
以便能够在我想要的位置插入文本。我还添加了一些id
来帮助您选择正确的DOM
元素。
以下是基于JavaScript
的{{1}}。
jQuery
您所要做的就是使用// initially provide data
var shoeData = {
12: 25,
14: 30,
16: 35
}
$(function () {
$(document).ready(function () {
// dynamically create the options in the select
$.each(shoeData, function (key, value) {
$("#size").append($("<option>", {
"value": key,
"text": key + " size(£" + value + ")"
}));
});
// display the initial data
updateHandler();
});
// register for update events on the input fields
$("#size").on('change', updateHandler);
$("#qty").on('input', updateHandler);
});
// handle update events (when an input field was changed)
function updateHandler() {
// accumulate the data
var value = $("#size").val();
var quantity = $("#qty").val();
var price = shoeData[value];
var endPrice = price * quantity;
// display the data
$('#priceDisplay').html(price);
$("#sizeDisplay").html(value);
$("#totalDisplay").html(endPrice);
}
为数据填充shoeData对象,如下所示:
php
当客户更改鞋子尺寸或数量时,只需将字符串写入相应var shoeData = {
12: <?php echo $row [ 'Start_Cost']; ?>,
14: <?php echo "30"; ?>,
16: <?php echo $priceForSize16; ?>,
}
的“html
”属性即可更新总数,价格和鞋子信息。
您的span
将按预期收到该表单 - 这意味着您将获得“cart.php
”和“Qty
”。您必须根据size
的值在PHP
中查找价格,然后将其乘以$REQUEST["size"]
的值才能获得总价。