2013-02-25 39 views
1

我已经看到有些人在类似的问题之前问过,但没有人回答我的问题。 我有一个关于Ajax和PHP的问题。在他们两人中,我都是初学者。从mysql中填充第二个下拉菜单

我试图做的是所谓的:链式选择框。我想要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); 
     } }); 
    }); 

“禄”是第一个下拉菜单的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)第二,也是最重要的是,我的想法其实是否正确,或者我错过了一些逻辑错误?

非常感谢。 迪米瑞斯

+0

回显您需要的变量。就像我们在桌上一样。但你需要使用选项标签。 – Sarang 2013-02-25 13:03:08

+0

互联网上有很多这方面的例子。虽然它们看起来很复杂,但它们会帮助你得到你想要的结果。 – mcryan 2013-02-25 13:03:25

+0

Sarang:你的意思是这样的:echo $ options。=“'; – user1919 2013-02-25 13:05:40

回答

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

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

+0

谢谢。我会尽力去做你的建议。 – user1919 2013-02-25 13:08:07