【发布时间】:2015-02-26 10:37:03
【问题描述】:
我目前正在经营一家在线商店。我已经成功编写了一个脚本来计算产品的价格,并在用户单击“更新价格”按钮时在产品页面上显示该价格。有没有办法在没有提交按钮的情况下做到这一点?换句话说:有没有办法让价格自动显示和更新?
(我没有包含我的 .php 文件,因为它使用数据库中的数据。)
任何帮助将不胜感激!
<form action="/" id="updatePrice">
<h3>Size</h3>
<select class="form-control" id="sizejquery" name="size">
<option>A0</option>
<option>A1</option>
<option>A2</option>
</select>
<h3>Type of paper</h3>
<select class="form-control" id="paperjquery" name="paper">
<option>white coated paper</option>
<option>photo paper</option>
</select>
<h3>Quantity</h3>
<select class="form-control" id="quantityjquery" name="quantity">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
<br>
<input class="btn btn-default" type="submit" value="update price">
</form>
<div id="price">
<h3>$0.00</h3>
</div>
<script>
// Attach a submit handler to the form
$("#updatePrice").submit(function(event) {
// Stop form from submitting normally
event.preventDefault();
// Get some values from elements on the page:
var $form = $(this),
size = $form.find("#sizejquery").val(),
paper = $form.find("#paperjquery").val(),
quantity = $form.find("#quantityjquery").val(),
url = $form.attr("action");
// Send the data using post
var posting = $.post(url, {
size: size,
paper: paper,
quantity: quantity
});
// Put the results in a div
posting.done(function(data) {
var content = $(data).find("#content");
$("#price").empty().append(content);
});
});
</script>
【问题讨论】:
-
你有很多可以使用的事件,你应该使用它来达到你的目标,看看它们HERE 例如,你可以使用 keyup() 更改产品的数量你可以做任何你想做的事情,比如获取进程并更新它。
-
您希望多久运行一次更新?
-
@LShetty 好问题!我还没有真正考虑过。我想我希望在用户加载页面时“更新”价格(我认为我必须使用准备好的文档)以及当用户更改选择框的值时。
-
我又做了一次更新。要使其正常工作,请将按钮类型更改为“按钮”而不是“提交”
标签: php jquery ajax submit live