如何解决错误php中的未定义索引(laravel)

时间:2015-03-29 14:33:47

标签: php laravel

我使用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错误。帮帮我

2 个答案:

答案 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']