wordpress主题文件中的依赖下拉列表
dependent dropdown in wordpress theme files
我想在wordpress中创建州/城市依赖下拉列表。这是我的js文件代码
<script type="text/javascript">
jQuery(document).ready(function($) {
$('#state').change(function(){
var $location = $(this).val();
alert($location);
$.ajax({
url:'ajaxurl',
type: 'post',
data: ({action : 'getcity'}),
success: function() {
$("#district").removeAttr("disabled");
$("#district").append(results);
}
});
});
});
</script>
我已经在function.php中创建了一个名为getcity的函数,并将钩子和动作添加到该函数中,并将这个js文件添加到主题js文件夹中,并在函数文件中查询它。我收到了空警报??有人知道吗?
add_action('wp_head','ajaxurl');
function ajaxurl() {
?>
<script type="text/javascript">
var ajaxurl = '<?php echo admin_url('admin-ajax.php')."getcity"; ?>';
</script>
这是下拉代码
<p class="half_form half_form_last">
<label for="property_country"><?php _e('State ','wpestate'); ?></label>
<select name="state" id="state" class="select-submit2">
<option value="">Select state</option>
<?php
$result=$wpdb->get_results("select distinct(state) from tblcitylist");
//$wpdb->get_results($query);
foreach($result as $row) {
$state=$row->state;
echo '<option value="">'.$state.'</option>';
}
?>
</select>
</p>
在function.php function getcity(){
global $wpdb;
if($_POST['state'])
{
$id=$_POST['state'];
$result=$wpdb->get_results("SELECT * FROM tblcitylist WHERE
state='$id'");
//$wpdb->get_results($query);
foreach($result as $row) {
$city_name = $row-
>city_name;
$city_id = $row->city_id;
echo '<option
value="'.$city_id.'">'.$city_name.'</option>';
//echo '<option value="'.'0'.'">'.'New Phase'.'</option>';
}
}
}
add_action("wp_ajax_nopriv_getcity", "getcity");
add_action("wp_ajax_getcity", "getcity");
我在functions.php
中包含了如下js文件wp_enqueue_script('my_own_js',
get_template_directory_uri().'/js/my_own_js.js',array('jquery'));
我觉得最好把它作为一个答案贴出来。我会从functions.php中删除var ajaxurl
,并在页面内使用它。我看不出你把位置传给ajax
的地方。它应该看起来像这样:
<script type="text/javascript">
jQuery(document).ready(function($) {
$('#state').on('change', function() {
var location = this.value;
alert(location);
$.ajax({
type: "POST",
url:'<?php echo admin_url('admin-ajax.php'); ?>',
data: ({'action' : 'getcity', 'location' : location }),
success: function(results) {
$("#district").removeAttr("disabled");
$("#district").append(results);
}
});
});
});
</script>
那么下拉菜单应该是这样的
<select id="state">
<option value="state1">state1</option>
<option value="state2">state2</option>
...
</select>
对于getcity
,你必须得到正确的$_POST
:
function getcity(){
global $wpdb;
if($_POST['location']){
$id=$_POST['location'];
$result=$wpdb->get_results("SELECT * FROM tblcitylist WHERE state='$id'");
$html = '';
foreach($result as $row) {
$city_name = $row->city_name;
$city_id = $row->city_id;
$html .= '<option value="'.$city_id.'">'.$city_name.'</option>';
}
}
}
add_action("wp_ajax_nopriv_getcity", "getcity");
add_action("wp_ajax_getcity", "getcity");
相关文章:
- 依赖下拉列表的数据验证
- 禁用JavaScript-依赖下拉列表
- 数据库中的依赖下拉列表值
- 百里香叶地图中的依赖下拉列表
- 创建依赖下拉列表
- 表中的 Jquery 依赖下拉列表
- 如何在代码点火器中创建依赖下拉列表
- simple_form_for中的依赖下拉列表
- Jquery 依赖下拉列表以加载到文档就绪
- 如何从依赖下拉列表获取值到JavaScript并将其解析到另一个PHP页面
- 依赖下拉列表不起作用
- 依赖下拉列表不起作用
- Django和Javascript:依赖下拉列表不起作用
- Angular JS-依赖下拉列表(3)
- html和javascript中的依赖下拉列表
- 依赖下拉列表在php中工作,而在codeigniter中不工作
- 如何创建与添加选项并排的依赖下拉列表
- 为依赖下拉列表选项提供一个值以创建函数
- 如何在表单加载中加载动态依赖下拉列表
- wordpress主题文件中的依赖下拉列表