2017-06-28 81 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

這很快就超過了我的頭。 –

相關問題