基于酷的StackOverflow代码,我成功地创建了一系列动态加载的<SELECT>
下拉列表。但是,在处理表单时(例如,如果提交的信息有错误),我需要在动态加载的<SELECT>
块中自动选择合适的<OPTION>
。我尝试了一个可以与静态<SELECT>
块一起使用的解决方案,但它在我的动态加载块上不起作用。 (我隐藏/显示在需要的时候<SELECT>
块。)下面的代码:通过JQuery自动选择<option>动态加载<select>
<?php do things at the beginning of the page ?>
<script>
$(function() {
$('#container_A1').hide();
$"#category_A0").change(function() {
$("#category_A1").load("http://domain.com/loader/"+$("#category_A0").val());
$("#container_A1").show();
});
});
</script>
<?php create the HTML page... ?>
<script><?php
if(isset($_POST['category_A0']) && $_POST['category_A0'] != '' &&
isset($_POST['category_A1']) && $_POST['category_A1'] != ''){ ?>
$(function() {
$("#category_A1").load("http://domain.com/loader/"+$("#category_A0").val());
$("#container_A1").show();
$("#category_A1").val("<?php echo $_POST['category_A1']; ?>"); // NOT WORKING
});
<?php
}
?>
</script>
一切正常,只是试图将category_A1 <SELECT>
块的值设置为定义的选项的最后JQuery的行$ _ POST [ 'category_A1']。这是行不通的。当调用后续的.val()函数时,.load()函数是否未完成?
谢谢!
您通常不应混合使用服务器端和客户端代码。它很可能不会像你想象的那样工作(即PHP必须在JavaScript开始之前完成它所做的一切)。 –
我很困惑。为什么我看到php代码?我可能想看到的唯一的php就是在'/ domain.com/loader /'中。这是上面给出的吗? –
Brian Hoover的见解非常完美。大多数PHP代码都是不必要的,但有些是必需的......比如在运行之前构建JQuery脚本所需的$ _POST数据。在.load()回调中嵌入最终的.val()效果非常好。遗憾的是,我不得不等待8个小时才能发布一个实例。 –