2017-06-28 168 views
0

我继续我的多级引导表上工作,我打了一个路障试图从我的DB拉信息。JQuery的从MySQL获取数据,并存储到变量

主要页面是PHP,并命名为quote_tool.php

我有以下功能要求:

  1. 的数据必须来自MySQL数据库。
  2. 用户应该只接收他们请求(即,从该数据库行与如果用户选中单选按钮以包括在表格上的用户许可有关用户许可证信息只应抓住)的数据。
  3. 的信息需要从数据库调用时没有刷新/重新加载页面。

目前我有一个表在我的数据库有以下的列:

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是一个隐藏字段,将用于额外的计算,但型号是摘要页面上可见。

当用户输入了我需要调用数据库,并从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摘要页面上正确输入字段。

+0

您正在寻找的技术称为AJAX。在较高的层次上,您可以创建一个服务器端的“页面”(发送JSON数据而不是HTML页面的PHP文件),它接受它所需的输入,从数据库中提取数据并将输出写回。您的客户端JavaScript代码将对该“网页”网址发出AJAX请求,并根据您的需要提供POST或GET参数的值,并接收响应。然后,客户端代码将做任何需要在页面上做出的响应。 JavaScript不会与数据库交谈,PHP会代理该交互。 – David

回答

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采取用户输入,并把它变成一个查询时(不只是构建一个SELECT语句通过joining strings)。另外一定要看看你的事件绑定,你也许可以为你的输入写一个通用的处理器,它将合作伙伴ID作为data-* attribute,使你的代码更小,更容易维护。

+0

您提供给我的这段代码是专门用来抓取数据库中物品的部件号吗? (假设你上面提到的所有其他工作都已完成)。 –

+0

这只是为了展示如何在不刷新页面的情况下将'POST'添加到'php',甚至可以使用服务器响应来更新页面。 –

+0

这很快就超过了我的头。 –

相关问题