Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript json_解码后未定义的索引_Javascript_Php_Jquery_Arrays_Ajax - Fatal编程技术网

Javascript json_解码后未定义的索引

Javascript json_解码后未定义的索引,javascript,php,jquery,arrays,ajax,Javascript,Php,Jquery,Arrays,Ajax,当我试图获取JavaScript数组的内容并将其值传递给PHP数组变量时,我遇到了一个问题 我所做的是,当用户单击按钮时,所单击项的值将添加到javascript数组中,并且每次javascript数组更新时,PHP变量也将更新,因此显示PHP数组内容的div的内容也将更新。我不是在使用表单,而是按钮 但是,当我尝试使用json\u decode函数获取JavaScript数组的值时,它给了我一个消息:未定义索引:数据错误 我是JavaScript、jQuery和AJAX的初学者,请耐心听我说

当我试图获取JavaScript数组的内容并将其值传递给PHP数组变量时,我遇到了一个问题

我所做的是,当用户单击按钮时,所单击项的值将添加到javascript数组中,并且每次javascript数组更新时,PHP变量也将更新,因此显示PHP数组内容的div的内容也将更新。我不是在使用表单,而是按钮

但是,当我尝试使用
json\u decode
函数获取JavaScript数组的值时,它给了我一个
消息:未定义索引:数据
错误

我是JavaScript、jQuery和AJAX的初学者,请耐心听我说

这是我的代码:

<script>
    // ARRAY VARIABLE WHERE ITEM VALUES WILL BE STORED
    var food_item = new Array();

    // FUNCTION TO BE TRIGGERED WHEN USER CLICKED THE BUTTON, GET THE ITEM'S VALUE AND ADD IT TO ARRAY
    function addToTray(data){
        food_item.push(document.getElementById(data).value);
        dataString = food_item; // array?
        var jsonString = JSON.stringify(dataString);
           $.ajax({
                type: "POST",
                url: "main",
                data: {data: jsonString}, 
                cache: false,

                success: function(){
                    alert("OK");
                }
            });
    }
</script>

<body>
    ...

    // LINE OF CODE RESPONSIBLE FOR FETCHING JAVASCRIPT ARRAY VALUES
    $this->session->userdata['food_tray'] = json_decode($_POST['data']);

    // DIV TO BE UPDATED

    <div class="col-md-3 food-tray" id="food-items" style="margin-top: 7%">
        <!--FOOD TRAY-->
        <div class="panel-heading">
            <h3 class="ft-header">Food Tray</h3>
        </div>
        <div class="panel-body">
            <?php
                $count_fi = count($this->session->userdata('food_tray'));

                echo "<p>Your Items (" . $count_fi . ")</p>";

                if($count_fi == 0){
                    echo "<p class='no-avail-list'>NO ITEMS ADDED IN FOOD TRAY</p>";
                }else{
                    echo "<table class='table borderless'>";

                    for($i = 0; $i < $count_fi; $i++){
                        echo "<tr>";
                        echo "<td>" . $this->session->userdata['food_tray'][$i] . "</td>";
                        echo "<td>P 200.00</td>";
                        echo "<td><form method='post'><input type='number' name='qty' min='1' max='100' value='1'/></form></td>";
                        echo "</tr>";
                    }

                    echo "</table>";
                    echo "<a href='' class='btn btn-success' data-toggle='modal' data-target='#myModal'>
                        Add Friend</a>";
                    echo "<a href='".base_url()."index.php/CheckOut' class='btn btn-warning'>Proceed to Checkout</a>";
                }
            ?>
        </div>
    </div>

    ...

    <?php
        foreach($query->result() as $row){
            echo "<div class='col-lg-7'>";
                echo "<div class='thumbnail'>";
                    $file_name = strtolower(preg_replace('/[^A-Za-z0-9\-.]/', '', $row->name));
                    /*if(file_exists(FCPATH . '/assets/images/main/food/' . $file_name . '.jpg')){
                        echo "<img src='".base_url()."/assets/images/main/food/".$file_name.".jpg' alt='' width='320px' height='100px'>";
                      }else{
                        echo "<img src='http://placehold.it/320x150' alt=''>";
                      }*/
                      echo "<img src='http://placehold.it/320x150' alt=''>";
                      echo "<div class='caption'>";
                        echo "<h5 class='pull-right'>&#x20B1 " . $row->price . "</h5>";
                        echo "<h5><a href='#'>" . $row->name . "</a></h5>";
                        echo "<h5>Calorie Count :  " . ($row->calorie_count == NULL ? "Not Available" : $row->calorie_count) . "</h5>";
                        // BUTTON FOR `addToTray()` FUNCTION
                        echo "<button class='btn btn-primary' id='".$row->id."' value='".$row->name."' style='width:100%' onclick='addToTray(".$row->id.")'>Add to Tray</button>";
                        // var_dump($row->name);
                      echo "</div>";
               echo "</div>";
           echo "</div>";
       }
    ?>
</body>

//存储项值的数组变量
var food_item=新数组();
//当用户单击按钮时触发的函数,获取项的值并将其添加到数组中
函数addToTray(数据){
food_item.push(document.getElementById(data.value));
dataString=food\u item;//数组?
var jsonString=JSON.stringify(dataString);
$.ajax({
类型:“POST”,
网址:“main”,
数据:{data:jsonString},
cache:false,
成功:函数(){
警报(“正常”);
}
});
}
...
//负责获取JAVASCRIPT数组值的代码行
$this->session->userdata['food_tray']=json_decode($\u POST['data']);
//将要更新的DIV
餐盘
将会话创建为

$array = array ('food_tray' => json_decode($javascriptarray));
$this->session->set_userdata($array);
检查您的javascript库是否已加载到sources选项卡中。

将会话创建为

$array = array ('food_tray' => json_decode($javascriptarray));
$this->session->set_userdata($array);
检查您的javascript库是否已加载到sources选项卡。

注释不适用于扩展讨论或调试会话;这段对话已经结束。如果提示您进行澄清或编写代码,则应将其添加到您的问题中。如果您现在已经解决了问题,您应该发布一个答案。评论不适用于扩展讨论或调试会话;这段对话已经结束。如果提示您进行澄清或编写代码,则应将其添加到您的问题中。如果你现在已经解决了这个问题,你应该发布一个答案。