2014-08-30 106 views
0

在我的數據庫中,我有表Person (id, name, last_name, phone_number)。我做這樣的事情:JavaScript從DB檢索數據

$queryPerson = mysqli_query($con, 'SELECT * FROM Person'); 
while ($person = mysqli_fetch_array($queryPerson)) { 
       echo '<option value="'.$person["id"].'">'.$person["name"].' '.$person["last_name"].'</option>'; 
} 

我想用SCRIPT關閉從選擇複製所選值的文本框:

function copyPerson(data) { 
    document.getElementById["name"].value = data.value; 
} 

...但不是他們的ID我希望自己的姓和姓名和電話號碼在文本框中顯示。現在我想出了這個想法來讀取選項的值,將查詢發送到DB SELECT * FROM Person WHERE id = ID_FROM_SELECT,然後接收我想要接收的數據。我不確定這是否是一個好主意。

在之前:是的,我需要有$person["id"]作爲選項的值。

我的問題是:發送查詢數據庫是一個好主意 - 如果是的話,我怎麼能發送一個值從MySQL到MySQL,如果沒有 - 什麼是更好的解決方案?


編輯:除了@Thanos Tourikas答案,我發現這個鏈接是有幫助的: http://www.w3schools.com/php/php_ajax_database.asp

+0

你的問題不清楚和** mysql_query($ sql,$ con)** – M98 2014-08-30 10:58:00

+0

問題 - 修正了,我的'mysqli_query'語法正確 – whiteestee 2014-08-30 10:59:55

+0

oh mysqli。 – M98 2014-08-30 11:02:04

回答

2

一般來說是不會將查詢發送一個好主意。

解決的辦法是發送帶有Ajax的ID,並有一個處理該請求的PHP頁面。

在那個php頁面中,您只需要獲取作爲參數發送到請求的id,並在那裏構建db查詢。然後只是將結果作爲json對象進行回顯並用JavaScript處理該響應。

首先,使用jQuery向服務器請求發送人ID:

$.ajax({ 
    url: 'url_that_handles_request.php', 
    data: { id: person_id }, 
    dataType: 'json', 
    success: function(response){ 
     // here you handle the response from server. 
     // you can access the data returned doing something like: 
     var id = response.id; 
     var name = response.name; 
    } 
}); 

然後,你需要提供一個PHP頁面來處理Ajax調用:

$person_id = $_POST["person_id"]; 
// here you make the query to the database using the person id 
// and then just echo the db response as a json object 
echo json_encode($db_response); 

以下是一些有用的鏈接

jQuery的快速教程以及如何安裝它: http://www.w3schools.com/jquery/default.asp

快速教程jQuery的AJAX: http://www.w3schools.com/jquery/jquery_ajax_intro.asp

在jQuery提供的AJAX方法的一些參考: http://www.w3schools.com/json/

最後一個有關文檔: http://www.w3schools.com/jquery/jquery_ref_ajax.asp

有關JSON的指南json_encode php函數: http://php.net/manual/en/function.json-encode.php

+0

我從來沒有用過jSon也沒有阿賈克斯,所以我不確定我應該做什麼。你能給我任何有用的鏈接,因爲我真的不知道該怎麼做。 – whiteestee 2014-08-30 18:35:18

+0

我編輯了我的答案給你一些例子和鏈接。 – 2014-08-30 20:27:29

+0

好的,非常感謝您的幫助! – whiteestee 2014-08-31 16:12:37