我真的很难在控制器中获得POST值。我真的很擅长这个......请有人分享我的一些亮点......现在在黑暗中长时间玩耍。 我有一个复选框,需要将已检查的所有ID传递给控制器,并使用该ID更新我的数据库。我不知道我做错了什么,尝试了一切和一些例子在这里: sending data via ajax in Cakephp
也发现了一些关于同一问题的问题,但对我的帮助不大(或者可能太愚蠢无法理解)。我一直得到array();
请帮助我...我的代码或我可以参考的任何链接。我的代码: 我的观点脚本:
['3,1,3', '3,1,3', '3,1,3', '3,3,3', '3,1,1']
我的控制员:
<script type="text/javascript">
$(document).ready(function(){
$('.checkall:button').toggle(function(){
$('input:checkbox').attr('checked','checked');
$('#button').click( function (event) {
var memoData = [];
$.each($("input[name='memo']:checked"), function(){
memoData.push($(this).val());
});
var value = memoData.join(", ")
//alert("value are: " + value);
//start
$.ajax({
type:"POST",
traditional:true;
data:{value_to_send:data_to_send},
url:"../My/deleteAll/",
success : function(data) {
alert(value);// will alert "ok"
},
error : function() {
alert("false submission fail");
}
});
//end
} ); //end of button click
},function(){//uncheck
$('input:checkbox').removeAttr('checked');
});
});
以及此调试的结果是:
public function deleteAll(){
if( $this->request->is('POST') ) {
// echo $_POST['value_to_send'];
//echo $value = $this->request->data('value_to_send');
//or
debug($this->request->data);exit;
}
}
请帮助我。非常感谢你
答案 0 :(得分:1)
这个怎么样:
Jquery的:
$(document).ready(function() {
$('.checkall:button').toggle(function() {
$('input:checkbox').attr('checked','checked');
$('#button').click(function(event) {
var memoData = [];
$.each($("input[name='memo']:checked"), function(){
memoData.push($(this).val());
});
//start
$.ajax({
type: 'POST',
url: '../My/deleteAll/',
data: {value_to_send: memoData},
success : function(data) {
alert(data);// will alert "ok"
},
error : function() {
alert("false submission fail");
}
});//end ajax
}); //end of button click
},function(){//uncheck
$('input:checkbox').removeAttr('checked');
});
});
在控制器中:
public function deleteAll()
{
$this->autoRender = false;
if($this->request->is('Ajax')) { //<!-- Ajax Detection
$elements = explode(",", $_POST['value_to_send']);
foreach($elements as $element)
{
//find and delete
}
}
}
答案 1 :(得分:0)
您需要在ajax调用中将数据类型设置为json
JQUERY CODE:
$.ajax({
url: "../My/deleteAll/",
type: "POST",
dataType:'json',
data:{value_to_send:data_to_send},
success: function(data){
}
});