gpt4 book ai didi

javascript - json_decode 后未定义索引

转载 作者:行者123 更新时间:2023-11-28 04:17:14 25 4
gpt4 key购买 nike

当我尝试获取 JavaScript 数组的内容并将其值传递给 PHP 数组变量时遇到问题。

我正在做的是,当用户单击按钮时,单击的项目的值将添加到 javascript 数组中,每次 javascript 数组更新时,PHP 变量也会更新,因此内容显示 PHP 数组内容的 div。我没有使用表单来处理此事,而是使用按钮

但是,当我尝试使用 json_decode 函数获取 JavaScript 数组的值时,它给我一个 Message: undefined index: data 错误

我是 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>

谁知道如何解决这个问题?任何帮助,将不胜感激。

最佳答案

将您的 session 创建为

$array = array ('food_tray' => json_decode($javascriptarray));
$this->session->set_userdata($array);

检查您的 JavaScript 库是否已加载到“源”选项卡中。

关于javascript - json_decode 后未定义索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45725841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com