我使用Post方法将数组从View发送到Controller。这是我的代码。
控制器:Session::put('isCheck', $isCheck);
这就是我为isChecked数组赋值的方法。
var isChecked = [
<?php
$isCheck = "";
if (Session::has('isCheck')) {
$isCheck = Session::get('isCheck');
}
foreach ($isCheck as $isCheck) {
$status = $isCheck;
?>
<?php echo $status; ?>,
<?php } ?>
];
查看:
$("#target").click(function () {
var postTo = '<?php echo action('sample@postView'); ?>';
var data = {
isChecked: isChecked,
duplicateIsChecked: duplicateIsChecked
};
jQuery.post(postTo, data,
function (data) {
alert(data);
});
});
isChecked,DuplicateIsChecked是我的2arrays。
在控制器中我写这段代码:
$duplicateIsChecked = $_POST['duplicateIsChecked'];
$isCheck = $_POST['isChecked'];
但我得到Undefined index duplicateIsChecked错误。帮帮我
答案 0 :(得分:0)
您是否检查过Ajax调用的标头以确保其发送任何数据?在您发布的代码中,您将变量分配给数据中的两个值,但您没有显示您声明这些变量值的位置。
答案 1 :(得分:-1)
你不能像这样将javascript数组传递给php,你必须将数组转换为JSON并发送它。
所以它应该是
var data = JSON.stringify({
isChecked: isChecked,
duplicateIsChecked: duplicateIsChecked
});
要在控制器中获取JSON有效负载,可以使用
$payload = Input::json()->all();
然后访问该属性,您可以将其引用为
$payload['duplicateIsChecked']
&amp; $payload['isChecked']