1

我看到有人问过类似的问题,但没有一个人回答我的问题。我有一个关于 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)其次也是最重要的,我的想法实际上是正确的还是我遗漏了一些逻辑错误?

非常感谢。迪米特里斯

4

1 回答 1

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

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

于 2013-02-25T13:05:06.193 回答