我想做的是,每当用户在grouptypes下拉菜单中选择一个组类型时,它都会触发一个处理程序来检索属于该组类型的相应组,并将其传递给第二个选择下拉列表。
我有两个数据库表,组类型和组。一个组类型可以有多个组,但一个组只能属于一个组类型。我有两个选择标签,一个是grouptypes,另一个是groups。
我有如下代码,它是不正确和不完整的。所有的代码都包含在同一个PHP文件GroupModificationSuccess.php中(这有问题吗?)它应该得到'grouptypes'的值并回显'true',但它回显'false'。这意味着值没有正确传递。有人能帮我看一下,告诉我正确的方法吗?由于
<?php
$rows = array();
if(isset($_GET['grouptypes'])){
echo 'true';
}else{
echo 'false';
}
?>
<script type="text/javascript">
function populateFruitVariety() {
$.getJSON("url_for('GroupModificationSuccess')", {grouptypes:$('#grouptypes').val()}, function(data) {
var select = $('#groups');
var options = select.attr('options');
$('option', select).remove();
$.each(data, function(index, array) {
options[options.length] = new Option(array['group']);
});
});
}
$(document).ready(function() {
populateFruitVariety();
$('#grouptypes').change(function() {
populateFruitVariety();
});
});
</script>
GroupType:
<select id="grouptypes">
<?php foreach($grouptypes as $type) : ?>
<?php echo "<option value='" . $type->name . "'>" .$type->name. "</option>"; ?>
<?php endforeach ?>
</select>
<br />
<br />
Result:
<span id="list-of-groups"></span>
<br />
Group:
<select name="group" id="groups">
<?php $count = 0; ?>
<?php foreach($groups as $group) : ?>
<?php $count++; ?>
<?php echo "<option value='" . $group->name . "'>" .$group->name. "</option>"; ?>
<?php endforeach ?>
</select>
<br />
我的建议是通过使用firebug/类似的web开发人员工具来调试代码,通过使用javascript函数console.log将消息输出到控制台。只需传递字符串/对象以将其输出到控制台。
例如,尝试输出options变量。我的猜测是,它是空的,因为您正在使用attr函数。不如试试子函数,它可能会对您有所帮助。