JavaScript从数据库中检索数据

JavaScript retrieve data from DB

本文关键字:检索 数据 数据库 JavaScript      更新时间:2023-09-26

在我的数据库中,我有一个表Person (id, name, last_name, phone_number)。我这样做:

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

我想使用javascipt函数将选择的值从select复制到文本框:

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

但我希望在文本框中显示他们的姓名、姓氏和电话号码,而不是他们的id。现在我想出了这个主意,从一个选项中读取值,将查询发送到DB SELECT * FROM Person WHERE id = ID_FROM_SELECT,然后接收我想要接收的数据。不过我不确定这是否是个好主意。

在前面:是的,我需要将$person["id"]作为一个选项的值。

我的问题是:将查询发送到DB是个好主意——如果是,我如何将值从javascript发送到MySQL,如果不是——什么是更好的解决方案?


编辑:除了@Thanos Tourikas的答案,我发现这个链接很有帮助:http://www.w3schools.com/php/php_ajax_database.asp

通常发送查询不是一个好主意。

解决方案是用ajax发送id,并有一个php页面来处理该请求。

在php页面中,您只需要获取id,它作为参数发送到请求,并在那里构造数据库查询。然后将结果作为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/jquery/jquery_ref_ajax.asp

关于json的教程:http://www.w3schools.com/json/

最后是关于json_encode php函数的文档:http://php.net/manual/en/function.json-encode.php