我看到有人问过类似的问题,但没有人回答我的问题。 我有一个关于 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) 其次,也是最重要的一点,我的想法是否真的正确,或者我遗漏了一些逻辑错误?
非常感谢。 季米特里斯
最佳答案
干净的解决方案是返回一个 JSON 数组,其中包含第二个下拉列表的所有选项。这可以通过创建一个普通的 PHP 数组然后使用
json_encode()
轻松完成。您可以遍历结果并在 JS 函数中创建新选项。这样肯定行得通。但是,花时间学习如何使用其中一种可用的解决方案可能是值得的。
关于php - 从 mysql 填充第二个下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15067612/