【发布时间】:2014-09-13 00:43:23
【问题描述】:
我知道已经发布了几个与相关下拉列表相关的类似问题,但我找不到我正在寻找的答案 - 如果它已经被涵盖,请道歉!
我要做的是:我正在构建一个网页,其中包含两个相关的下拉列表;第二个的值取决于第一个的选择。第一个是“产品”,第二个是“尺寸”......到目前为止,一切都很好。每个列表中包含的选项最终都来自一个数据库——产品列表如下:
<select id="product-list">
<option value="0">-- Please Select --</option>
<?php
if ($res2 = mysqli_query($con,$getproducts)) {
while($row2 = mysqli_fetch_row($res2)){
$pid= $row2[0];
$pname= $row2[1];
echo "<option value='" . $pid . "'>" . $pname . "</option>";
}
}
?>
</select>
这个工作得很好,所以没有问题。但是,我很难理解第二个列表...
检索尺寸的查询是这样的:
$getsizes = "SELECT productid,displayname,price from productsizelookup where formatid = $formatid";
我只有两个产品(目前),所以这个查询将检索所有可能的尺寸,所以我现在需要的是这个查询中的一个记录子集,基于由选项中的选项值提供的产品 ID首先选择列表。
我不知道这是否需要对数据库进行另一次查询,而且我在某处读到了可能需要 AJAX 的信息。有没有人能够提供帮助,或者在正确的方向上轻轻推动?
编辑
我尝试添加一个 div 块,如下所示,我希望下拉菜单出现:
<div id="wrap_size"></div>
然后在页面底部添加以下脚本:
<script type="text/javascript">
$(document).on('change', '#product-list', function(e) {
var pid = $(this).val();
var data = {'pid':pid};
var url = 'size.php';
$.post(url, data, function(res) {
$('#wrap_size').html(res);
});
});
</script>
最后,我的 size.php 文件:
<?php
include("include/dbvariables.php");
$con=mysqli_connect($host,$username,$password,$database);
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$pid = !empty($_POST["pid"]) ? $_POST["pid"] : 0;
$getsizes = "SELECT productid,displayname,price from productsizelookup where formatid = $formatid and productid = $pid";
echo '<select id="size-list">';
echo '<option>-- Please Select --</option>';
if ($res3 = mysqli_query($con,$getsizes)) {
while($row3 = mysqli_fetch_row($res3)){
$sid= $row3[0];
$pid= $row3[1];
$size= $row3[2];
$price= $row3[3];
echo '<option value="'.$sid.'">'.$size.'</option>';
}
}
echo '</select>';
?>
我现在在列表中获得的唯一选项是“-- 请选择--”选项...抱歉,如果我对此不满意!
非常感谢
【问题讨论】:
-
查看这个turson.pl/blog/dynamiczne-zalezne-selecty 还有一个演示
-
@turson - 感谢您的链接,我会检查一下
-
非常努力。乍一看:你应该把你的 jQuery 代码包装在
$(document).ready(......);中你还链接到 jQuery 库吗? -
pid未通过。除了使用document.ready,你的页面上也应该有这样的东西:<script type='text/javascript' src='http://code.jquery.com/jquery-1.11.1.min.js'></script> -
刚刚添加了
$(document).ready(...)并且已经引用了 jquery 库但结果仍然相同...出现下拉菜单但未显示任何选项。我是否在 size.php 中正确使用/访问了$pid?