我需要从控制器文件中获取数据库中的数据并显示到元素文件和在inspect元素中显示的ajax值,并且当我在ajax中警告它显示该值将转到控制器时。
但问题是如何在控制器中回显或打印ajax值以从数据库中获取数据并将其显示到元素文件中?
如何在控制器功能中呈现自定义元素文件?
ajax脚本
<script>
$('#categories .accordion .tablist .tablistitem').on('click', function () {
event.preventDefault();
$(".accordion li").removeClass("active");
var $li = $(this);
$liid = $li.attr('id');
$slug = $li.data('slug');
$li.addClass("active");
$('#wrapper').append('<span id="load">LOADING...</span>');
$('#categories_info').show();
$.ajax({
type: 'POST',
url: '/reviews/getsubcategories',
data: {"selectid":$liid },
dataType:"text",
success: function(data, textStatus, xhr) {
alert(data);
},
error: function(xhr, textStatus, error) {
alert(textStatus);
}
});
});
</script>
控制器功能
function getsubcategories()
{
echo $selectid= $_POST['selectid'];
return $selectid;
}
元素文件
$SubCategoryObj = cri('Reviews');
$selectid = $SubCategoryObj->getMainCategories();
echo $selectid;
答案 0 :(得分:1)
到目前为止,您所做的大部分都是正确的,但过去我刚刚在View/Reviews
文件夹中创建了正常的视图。
在控制器中设置数据:
<强> /app/Controller/ReviewsController.php 强>
public function getsubcategories()
{
$this->layout = 'ajax';
$data = /**code to get data**/
$this->set('data', $data);
}
<强> /app/View/Reviews/getsubcategories.ctp 强>
<?php echo json_encode($data); ?>
另一种选择是在上面创建相同的视图,但将其放在文件app/View/Ajax/json.ctp
然后在控制器内部,你在getsubcategories动作中调用的最后一件事是。
$this->render('Ajax/json');
根据我的经验,元素在视图中使用,而不是视图的替换