【发布时间】:2014-06-16 13:51:17
【问题描述】:
我有一个从数据库数组中填充的列表,如下所示:
$i = 0;
foreach ($category_label as $value) {
echo '<input id="'.$category_label[$i].'" type="checkbox" name="q1" value="'.$category_label[$i].'">
<label for="'.$category_label[$i].'">'.$category_label[$i].'</label><br />';
$i++;
如您所见,这会从数据库数组中构建一个带有复选框的项目列表。下一步是,如果用户选择其中一个复选框,我需要显示一个新的关联项目数组。这是我已经开始执行此操作的 javascript 和关联的<div>:
JS:
$(function() {
$('input[name=q1]').on('change', function () {
var valu = this.value;
if (this.checked) {
$('#q2').append("<li><a href='#'>" + valu + "</a></li>");
$('#question2').show();
} else {
var lis = $("#q2").find('li');
lis.each(function () {
if ($(this).text() === valu) {
$(this).remove();
}
});
if (lis.length === 0) {
$('#question2').hide();
}
}
});
});
相关PHP:
<div id="question2" class="question">
<p>Results:</p>
<ul id="q2"></ul>
</div>
好的,现在,js 脚本中的var valu = this.value; 正在显示question2 div 中的选定项。相反,我需要从选中的项目中获取类别 id 值,然后拉出所有具有关联父类别的子项目来填写列表。如何修改我的 php 和 js 来做到这一点?
更新:
这个问题得到了一些反馈,认为它太宽泛了。让我进一步说明问题以找到一个好的解决方案。我修改了第一个 PHP 脚本,将所选项目中的类别 ID 作为值拉入输入项目。这是更新:
echo '<input id="'.$category_label[$i].'" type="checkbox" name="q1" value="'.$category_id[$i].'"><label for="'.$category_label[$i].'">'.$category_label[$i].'</label><br />';
现在,我只需要找到一种方法通过 javascript 传递此值,并获取与该类别值关联的项目数组以显示在输出列表中。
【问题讨论】:
-
这太宽泛了,无法在这里回答:您需要 ajax 向服务器发出请求,将值作为参数发送,然后编写一个 php 脚本来处理它并发送回您需要的结果。跨度>
-
foreach循环的想法是您可以使用$value而不是$category_label[$i]。并且为所有复选框使用相同的name属性可能会导致问题,尤其是在禁用 javascript 的浏览器中。 -
我对这个问题给出了类似的答案here
-
for循环中哪个变量是类别id值?我看到的只是类别标签。
标签: javascript php jquery mysql arrays