如何在 SQL 查询后更改输入字段的值

How to change value of an input field after SQL query

提问人:sarah 提问时间:2/21/2023 更新时间:2/21/2023 访问量:108

问:

我创建了一个输入字段,用户可以在其中键入他或她的城市名称,在输入至少 3 个字符后,将执行 SQL 查询并创建一个下拉列表,用户应该能够在其中选择显示的城市之一。 单击一个城市后,输入字段的值应更改为用户单击的城市。

这是我的html代码:


<input type="text" id="Stadt_suche">
<div id="dropdown-content">

</div>

这是数据库查询和填充输入的脚本:

$('#Stadt_suche').keyup(showCity);
$('p').on(click, enterCity);


function showCity() {
    
    var str = SSI_GetValue('Stadt_suche'); // this function get the current value of the input-field
    
    if (str.length <= 2) {
        document.getElementById("dropdown-content").innerHTML = "";
        return;
    } else {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("dropdown-content").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET", getcity.php?q=" + str + "%", true);
        xmlhttp.send();
    }
}


function enterCity(){
    var city = $(this).text();
    $("#Stadt_suche").val(city);

以及 - 以防万一 - 数据库查询:

 <?php

$mysqli = new mysqli("host", "user", "password", "database");
if($mysqli->connect_error) {
  exit('Could not connect');
}


$sql = "SELECT DISTINCT `Ort` FROM `HaendlernetzGesamt` WHERE `Ort` Like ?";

$stmt = $mysqli->prepare($sql);
$stmt->bind_param("s", $_GET['q']);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($ort);

if($stmt->num_rows > 0){
    while ($stmt->fetch()){
        echo "<p id='" . $ort . "'>". $ort ."</p>";
    }
}
?> 

脚本正确地回显了城市,并且函数 enterCity 工作正常,如果我不尝试定义变量(城市),而是将输入字段的值设置为字符串(如“value(”city“))。但是由于用户必须选择条目,因此我无法为此输入字段提供预定义值。

那么 - 你有什么输入我可以改变什么来获得我正在寻找的结果吗?

php jquery ajax 输入

评论

0赞 CBroe 2/21/2023
首先,将单击处理程序添加到您返回的文本段落中(实际上应该首先在 a 中),以便用户可以通过单击在此处做出“选择”。然后,从单击的元素中获取值,并为输入字段设置 if。liul
0赞 CBroe 2/21/2023
SSI_GetValue('Stadt_suche'); // this function get the current value of the input-field- 为什么这需要额外的功能? 应该能够直接让你得到它。$(this).val()

答: 暂无答案