我有一个输入(预先输入),用户应该在其中输入名称。基于该名称,我正在使用ajax从数据库中检索两个不同的值集,这些值在2个下拉列表中显示。这两个字段是到达类型和子名称。
我在输入上添加了onchange动作,并在用户开始键入时调用了该函数。
到目前为止,它似乎无法正常工作。这是我的代码
<input type="text" class="form-control typeahead text_field"
name="name_alias" id="name_alias" placeholder="Search unit" style="min-
width:200px;" onChange="getNameType();" required/>
function getNameType()
{
if (ajax) {
var name_alias = document.getElementById("name_alias").value;
if(name_alias) {
var param = "?name_alias=" + name_alias;
var url = "getNameType.php";
ajax.open("GET", url + param, true);
ajax.onreadystatechange = handleAjax3;
ajax.send(null);
}
}
}
function handleAjax3()
{
if (ajax.readyState == 4) {
var arrival_type = document.getElementById('arrival_type');
if(!!ajax.responseText) {
var result = JSON.parse(ajax.responseText);
if(!!result){
$('#arrival_type').val((!!result.arrival_type) ? result.arrival_type: '');
}
}
}
}
我的getNameType文件
<?php
$conn = mysqli_connect("","","","");
$name_alias = mysqli_real_escape_string($conn, $_GET['name_alias']);
$query = "SELECT arrival_type
FROM table_namer
WHERE name_alias='".$name_alias."'
LIMIT 1";
$result = mysqli_query($conn, $query) or die(mysql_error());
$response = array();
if(mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$response['arrival_type'] = ($row['arrival_type'] != '') ? $row['arrival_type'] : '';
}
}
echo json_encode($response, true);
?>