【问题标题】:Best method to total options sent to mySQL query through AJAX通过 AJAX 发送到 mySQL 查询的总选项的最佳方法
【发布时间】:2013-10-30 14:47:57
【问题描述】:

我有表 charges,它有字段 id, name, price。他们将收取额外费用,例如酒店住宿(一瓶酒、PPV、玫瑰床等)[房间价格以外的任何额外费用],我想将这些作为复选框选项显示给用户。

现在,我需要让那些被选中,知道在哪里被选中,然后将其添加到总数中。我无法找到最好的方法来做到这一点。我正在使用 AJAX 执行此操作。我知道如何将复选框发送到 PHP 文件,一旦我被卡住了。

我是否将所有检查的名称放入一个数组中,并将查询中的所有名称放入一个数组中并比较两者,当它们匹配时添加到总数中?似乎有一种更简单的方法可以做到这一点。

 //get extras
$query = 'SELECT name, price FROM charges'
$result = mysqli_query($con, $query); 

【问题讨论】:

  • 是的。获取附加列表,将它们显示为复选框,例如<input type="options[]" value="$name" />$name - \${$price}。然后在提交表单时,$_POST['options'] 将是客户选择的数组。您使用这些返回的 $name 值再次在数据库中查找它们的价格(不要通过客户端往返价格值),然后就可以了。

标签: php mysql sql ajax


【解决方案1】:

当用户选中复选框时,您可以即时添加价格。例如,

<input class='check' type='checkbox' value='5' /> Food
<input class='check' type='checkbox' value='10' /> Drink
<input type='text' readonly id='total' name='total'>

然后在选中时使用jQuery添加值。

 var vals = 0;
 $('input[type=checkbox]').click(function(){
     if($(this).is(':checked')){
         vals += parseInt($(this).val());
     }else{
         vals -= parseInt($(this).val())
     }
     $('#total').val(vals);
 });

您有了总价,现在您可以继续提交表单了。

如果您不需要所有价格,就会出现这种情况。但是如果你稍微修改一下,你就可以用它来满足你的需要。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    • 2016-11-03
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多