如何解决使用数据库表上的查询结果填充 html 表单选择元素
我正在尝试制作一个包含文本输入和下拉选择元素的表单。目标是能够使用将在查询中使用的客户姓氏在文本框中输入文本。然后需要将查询结果放在选择下拉框中以供进一步使用,值是 custID,文本是客户的名字和姓氏,可能还有电话号码。到目前为止,每当我运行它并输入任何值时,我只会得到数据 [] 和状态:无论我输入什么,我的警报框中都成功。
这是我一直在玩的表单和ajax。
<form method="post" class="form-container" >
<input type="text" name="lName" id="lName" placeholder="Last name"
onkeyup="showCustomer(this.value)"><br>
<select id = "custSelect" name="custSelect0" onchange="show(this)">
<option value="">-- Select Customer--</option>
</select><br>
</form>
<script>
function showCustomer(str) {
//alert("click");
var LastName = str;
var ele = document.getElementById('custSelect');
//alert (LastName);
$.ajax({
url:"getcustomer.PHP",type:"POST",data:{customer:LastName},success:function(data,status){
alert("Data: " + data + "\nStatus: " + status);
//alert("Search succesful")
/* $.each(data,function(i,item)) {
// POPULATE SELECT ELEMENT WITH JSON.
ele.innerHTML = ele.innerHTML +
'<option value="' + data[i]['custId'] + '">' + data[i]['fname'] + ' ' + data[i]['lname'] + '</option>';
}*/
}
})
}
function show(ele) {
// GET THE SELECTED VALUE FROM <select> ELEMENT AND SHOW IT.
var msg = document.getElementById('msg');
msg.innerHTML = 'Selected Customer: <b>' + ele.options[ele.selectedindex].text + '</b> </br>' +
'ID: <b>' + ele.value + '</b>';
}
</script>
这是我用来访问数据库和执行查询的 PHP 文件。它正在使用 PDO。
<?PHP
require_once "configPDO.PHP";
if(isset($_POST['customer'])){
$customer = $_POST['customer'];
$data = array();
$sql = "SELECT *
FROM `customers`
WHERE `LastName`
LIKE '$customer'";
$statement = $connect->prepare($sql);
//$statement->bind_param("s",$_GET['q']);
$statement->execute();
$result = $statement->fetchAll();
foreach($result as $row){
$data[] = array(
'custId' => $row["Cust_ID"],'fname' => $row["FirstName"],'lname' => $row["LastName"],'phone' => $row["PhoneNumber"],'altPhone' => $row["AltPhone"]
);
}
echo json_encode($data);
}
?>
解决方法
使用此视频中的信息进行一些建议的更改后 https://www.youtube.com/watch?v=RcW8mMiIexc 并更正了我要搜索的表格的拼写,我已经能够将结果返回到表格中。
.closest().find()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。