【发布时间】:2017-06-22 18:22:21
【问题描述】:
我有两个选择类别和类型,类型应该取决于类别选择,来自数据库,这是我的代码。
HTML
$ps_type_table_name = $wpdb->prefix . 'ps_type'; ?>
<form method="post" action="">
<label>Category :</label><br>
<select id="category" name="category"
class="form-control">
<?php
$categories = $wpdb->get_col('SELECT DISTINCT category FROM '.$ps_type_table_name);
foreach ($categories as $category){ ?>
<option value="<?php echo $category; ?>"><?php echo $category; ?></option>
<?php
}
?>
</select><br><br>
<label>Types :</label><br>
<select id="type" name="type" class="form-control">
</select><br><br>
</form>
阿贾克斯
$(document).ready(function(){
$('#category').on('change',function(){
var category = $(this).val();
if(category){
$.ajax({
type:'POST',
url:'category-type-select.php',
data:'category_name='+category,
success:function (html) {
$('#type').html(html);
}
});
}
});
});
PHP
class Get_category_type{
function __construct()
{
if (isset($_POST['category_name']) && !empty($_POST['category_name'])) {
global $wpdb;
$category = $_POST['category_name'];
$ps_type_table_name = $wpdb->prefix . 'ps_type';
$types = $wpdb->get_col($wpdb->prepare('SELECT DISTINCT type FROM ' . $ps_type_table_name . ' WHERE category=%s', $category));
foreach ($types as $type) {
echo '<option value="' . $type . '">' . $type . '</option>';
}
}
}
}
实际上,这是一个使用 oops 的 WordPress 插件,请帮我解决这个问题,我认为问题是在 ajax 代码中获取 PHP 文件,请告诉我如何在 ajax URL 中写入路径以在 WordPress 中获取该类文件插件
【问题讨论】:
-
您的浏览器控制台是否有任何错误
-
不,它没有显示任何错误,但在选择类型部分没有显示任何内容
-
我认为 __construct 函数只有在创建新对象实例时才会调用。所以你需要创建实例来运行构造函数。
-
如果我删除类并直接编写它也不起作用,我想我必须在 WordPress 中调用 PHP 文件的路径,例如:plugin_dir_path(FILE)/category -type-select.php,我不知道正确的写法
-
你当前的页面和category-type-select.php是在同一个目录还是在不同的目录? @Deekshith Shetty
标签: php jquery html ajax wordpress