gpt4 book ai didi

JavaScript 从数据库中检索数据

转载 作者:太空宇宙 更新时间:2023-11-03 12:08:01 25 4
gpt4 key购买 nike

在我的数据库中,我有表 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 函数将选择的值从选择复制到文本框:

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

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

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

我的问题是:将查询发送到数据库是个好主意 - 如果是,我如何将值从 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

关于JavaScript 从数据库中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25581591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com