【发布时间】:2013-08-27 00:50:34
【问题描述】:
我对蛋糕比较陌生,我正在努力使用我制作的自定义过滤器,以便根据选中的复选框显示产品。复选框根据用户在后端创建的属性进行填充,然后我将所选框的所有值收集到带有 javascript 的数组中并将其发布到控制器,但由于某种原因,我无法访问名为“$”的控制器变量find_tags' 在我看来,它通过未定义的变量。 这是我的 javascript 和 ajax,它们可以正确收集和发布(当我在我的控制器中触发它的“数据”时,我发布的数组值是数组值),这很好
$("#clickme").click(function(event){
event.preventDefault();
var searchIDs = $("#checkboxes input:checkbox:checked").map(function(){
return $(this).val();
}).get();
var contentType = "application/x-www-form-urlencoded";
var data = 'data[ID]='+searchIDs;
$.post("",data,function(data){
console.log(data);
});
});
这是我的控制器代码,我假设是故障所在
if ($this->request->is('post') ) {
$data = $this->request->data['ID'];
$find_tags = array();
$selected_tags = $data;
foreach($selected_tags as $tag)
{
array_push($find_tags,$this->Product->findByTag($tag));
$this->set('find_tags', _($find_tags));
}
}
这是我得到未定义变量的视图代码:find_tags
foreach($find_tags as $all_tag)
{
echo $all_tag['Product']['name'];
echo '</br>';
}
任何帮助或建议将不胜感激现在已经为此苦苦挣扎了一段时间
【问题讨论】:
-
这很可能是因为
$data是空的。你为什么不回显data看看返回了什么?我敢打赌,这个帖子工作不正常。在 CakePHP 中,你应该像这样形成你的 URL ->http://mysite.com/controller/function/argument1/argument2. -
为什么jQuery
post()函数参数中没有指定URL/URI?
标签: php javascript jquery ajax cakephp