php - 从 mysql 填充第二个下拉菜单

标签 php mysql ajax

我看到有人问过类似的问题,但没有人回答我的问题。 我有一个关于 ajax 和 php 的问题。在这两个方面我都比较初学者。

我尝试做的是所谓的:链式选择框。我想要 2 个下拉菜单。当我从第一个下拉菜单中选择一个值,然后从 mysql 数据库中填充第二个下拉菜单时。

为此,我使用了 jquery、ajax、php 和 mysql。

我试图在网上找到一些例子,但所有这些对我来说似乎都相当复杂(我猜是因为我是初学者)。

我决定自己做一些东西,但我被堆积了。不知道这个逻辑对不对。

那么我们开始吧(我将在此处仅包含相关代码):

我使用 jquery 发送一个 ajax 请求:

    $("#loc").change(function(){
     var val = ($('#loc').val());

        $.ajax({
        type:'POST',
        url:'query.php',
        data: {val:val},
        success:function(response){
            $("#x").html(response);
        } });
    });

“loc”是第一个下拉菜单的id。我得到值并将其发送到 query.php

query.php 有如下几行代码:

 <?php

include('connect.php'); 
$area = $_POST['val'];
$query ="SELECT DISTINCT activity FROM main ORDER BY 1 where n_city='$area'";
$result = mysqli_query($dbcon, $query) or die('no available data');
$options="";
while ($row=mysqli_fetch_array($result, MYSQLI_ASSOC)){
$activity=$row["activity"];

 }
 ?>

现在我想弄清楚两件事。 1)我应该在成功函数中返回什么,以便我得到一个填充了查询结果的表单? 2) 其次,也是最重要的一点,我的想法是否真的正确,或者我遗漏了一些逻辑错误?

非常感谢。 季米特里斯

最佳答案

  1. 干净的解决方案是返回一个 JSON 数组,其中包含第二个下拉列表的所有选项。这可以通过创建一个普通的 PHP 数组然后使用 json_encode() 轻松完成。您可以遍历结果并在 JS 函数中创建新选项。

  2. 这样肯定行得通。但是,花时间学习如何使用其中一种可用的解决方案可能是值得的。

关于php - 从 mysql 填充第二个下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15067612/

相关文章:

php - 我如何在 django 中使用现有数据库(mysql)?

javascript - 从 Controller 返回空值

ajax - 当 ajax 目标为 localhost 时,IE 10 和 11 中的访问被拒绝

php - Faker 软件包、数据库播种器问题

php - 在 php 中使用左连接的 sql 查询不起作用

mySQL合并来自2个数据库的数据

MySQL 升级后 MySQL NOT IN 查询速度变慢

javascript - 通过表单发送 anchor 标记值

php - 将单行注释转换为 block 注释

mysql - Python MySQLdb - 围绕 SQL 注入(inject)代码编程