我有一个正在使用的插件,其中一部分包含选项页面上的“有条件”下拉列表.基本上,我有一个包含三个选项的下拉列表,第二个下拉列表中填充了来自数据库的信息,具体取决于第一个下拉列表中选择的内容.问题是,我对如何填充第二个下拉菜单不知所措!我对AJAX并不是很满意,但这似乎是可能的解决方案.来自经验丰富的开发者有什么想法吗?
编辑:这是我当前所在的位置,但它似乎从未运行过:
<form action="<?PHP echo site_url() ?>/wp-admin/admin.PHP?page=ad_manager&pagetype=addedit&pid=<?PHP echo $_REQUEST['id']; ?>" method="post" name="ad_success">
<table cellpadding="5" class="widefat post fixed">
<thead>
<tr>
<th><strong><?PHP if($_REQUEST['id'] != '') { _e('Edit Ad'); } else { _e('Create Ad'); } ?></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<label for="gtad_condition">
<strong><?PHP _e('Ad Condition'); ?>:</strong>
<select name="ad_condition" id="ad_condition">
<option value="">Select an option...</option>
<option value="is_city">Is City</option>
<option value="is_location">Is Location</option>
<option value="is_page">Is Page</option>
</select>
</label>
<label for="gtad_location">
<select name="ad_location" id="ad_location"></select>
</label>
</td>
</tr>
</tbody>
</table>
</form>
<script>
jQuery(document).ready(function() {
$ad_condition = $("select[name='ad_condition']");
$ad_location = $("select[name='ad_location']");
$ad_condition.change(function() {
if ($(this).val() == "Is City") {
$("select[name='ad_location'] option").remove();
$("<option>Test</option>").appendTo($ad_location);
}
});
});
</script>
解决方法:
上面的代码不起作用的原因是因为$(“ mySelect”).val()返回< option>的value属性,而不是开始和结束标记之间的文本.看看我的小提琴:http://jsfiddle.net/XhujD/.
因此,您可以通过更改解决问题
if ($(this).val() == "Is City") {
进入
if ($(this).val() == "is_city") {
当第一个下拉列表更改时,使用AJAX填充第二个下拉列表基本上如下所示:
// wait until the first list has changed
$("#list1").change(function(){
// call a script using AJAX and pass the selected value
$.post('myScript.PHP', {myValue: $(this).val()}, function(data){
// clear the second list
$("#list2").find("option").remove();
// add the options based on the 'data' variable
$("#list2").append('<option value="myOption">' + data + '</option>')
});
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。