我将使其尽可能简短且具有描述性(考虑到我的案例更长)。 假设我有 2 个具有以下结构的数据库表:
用户表:
id ---- 用户名---- 金币
项目表:
id-----商品名称----商品价格
我想要实现的是集思广益,我尝试了 20 多个脚本组合。我需要能够将表中的所有项目回显为良好的布局(已完成) 有一个文本框供用户输入需要购买的值(value)。 a href 提交金额,从用户拥有的金币数量中扣除元素的价格,然后在库存中加1。我不需要 php 代码,因为它很简单。我所需要的只是尝试更新“Live”中键入的值的帮助。 “商店”的布局将如下所示:
while($_row = mysql_fetch_assoc($query)){
echo out name...
<input type = 'text' name = 'to_buy_value'/>
<a href = 'javascript:;' class = 'buy'>Buy</a>
}
希望上面的代码能给你足够的引用。 TL;DR(在数据库结构之后?) 1- 一个文本框,其中包含一个 href 作为提交内容。 2-表更新是即时完成的(无需重新加载)。 Ajax 。 3- 能够一次购买超过 1 件商品,无需重新加载页面 4-除非必要,否则不需要 PHP 代码的帮助。 我将不胜感激任何形式的帮助。
最佳答案
这是一个非常粗略的解决方案。在 while 循环中,您可以将项目的数据库 id 附加到元素的 id:
while($_row = mysql_fetch_assoc($query)){
echo out name...
<input id="purchaseAmount{$_row->id}" type="text" name="value_to_buy" />
<a id="purchaseButton{$_row->id}" href="#" class="buy">Buy</a>
}
然后将 JavaScript 函数绑定(bind)到您的“购买”链接,该链接将发出 AJAX 请求:
$('.buy').bind('click', function() {
// Grab the item id and amount
var itemId = $(this).attr('id').substring(14);
var itemAmount = $('purchaseAmount' + itemId).val();
$.ajax({
url: 'someurl/purchaseItem.php',
data: { item: itemId, amount: itemAmount },
success: function(data) {
// Update the player's gold and inventory on screen
}
});
});
“purchaseItem.php”文件可以返回一个简单的 JSON 对象,该对象保存玩家当前的金币和库存元素数量。或者您可以返回 HTML,具体取决于页面的设置方式。
关于php - ajax 类似结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10200778/