JQuery从MySQL获取数据并存储到变量

时间:2017-06-28 18:05:53

标签: javascript php jquery mysql

我正在继续处理我的多阶段引导程序表单,我遇到了试图从我的数据库中提取信息的障碍。

主页是PHP,名为quote_tool.php

我有以下功能要求:

  1. 数据必须来自MySQL数据库。
  2. 用户应该只接收他们请求的数据(例如,如果用户选中了一个单选按钮以在表单上包含用户许可,则只能抓取有关用户许可信息的数据库中的一行。)
  3. 需要从数据库中调用信息,而无需刷新/重新加载页面。
  4. 目前,我的数据库中有一个表格,其中包含以下列:

    enter image description here

    目前该表中有3种不同的产品。用户可以选择一个广播来表示他们想要包含端点,然后有3个复选框允许用户输入他们想要包含哪个端点的数量。

    输入字段如下所示:

    <label for="device-9102" class="form-partner-label"><input type="checkbox" class="quote-chkbox" id="9102-chk"> 9102 IP Phone</label>
    <input type="text" name="9102-quantity" class="form-endpoint-qty form-control" id="form-partner-9102" readonly value="0">
    

    当用户选中该框并输入一个值时,该值将在摘要页面上以及以下字段中动态更新:

    <input type="text" readonly name="sum-9102-qty" class="summary-field sum-qty" id="sum-9102-qty">
    

    此产品的摘要页面上还有2个其他字段。

    • MSRP
    • 零件编号

    MSRP是一个隐藏字段,将用于其他计算,但部件号在摘要页面上可见。

    当用户输入端点数量的值时,我需要调用DB并从refEndpoints表中提取MSRP和部件号。

    我正在构建一个函数来在用户点击表单上的“下一步”按钮时调用数据库,如下所示:

    //Call DB to fetch part number and msrp of 9102
        $('#form-partner-9102').change(function()){ 
            var quantity_9102 = $('#form-partner-9102').val();
            if(quantity_9102 !== 0) {
    
            }
        });
    

    这是我坚持的观点。我不确定如何调用数据库并将部件号和MSRP的值放在摘要页面上的正确输入字段中。

1 个答案:

答案 0 :(得分:0)

jQuery在客户端运行,因此无法直接连接到MySQL,但是您的问题标记为,它在服务器端运行,因此可以连接到您的数据库。首先,您需要设置一个可以响应HTTP POST请求并返回JSON的PHP文件。这是一个很好的答案,向您展示如何执行此操作:Returning JSON from PHP to JavaScript?

一旦设置(你需要研究这个PHP文件所接受的参数以及它如何将它转换成一个查询以便它可以响应)你现在可以设置一些简单的JavaScript来调用这个PHP文件(让我们称之为query.php)。执行此操作的代码可能如下所示:

$.post('/query.php', {quantity: $('#form-partner-9102').val()}, function(resp) {
  $('#PartNumber').html(resp.PartNumber);
});

要记住的一些重要事项是始终确保在获取用户输入并将其转换为查询时使用prepared statements(不要只通过joining strings构建SELECT语句)。另外,请务必查看事件绑定,您可以为输入编写一个通用处理程序,将合作伙伴ID作为data-* attribute,使您的代码更小,更易于维护。