gpt4 book ai didi

javascript - 在 Javascript 中正确格式化 JSON 数组

转载 作者:行者123 更新时间:2023-12-03 11:57:05 25 4
gpt4 key购买 nike

我正在编写一个简单的删除函数。此函数删除 PHP 输出的列表中的条目。发生的情况是这样的:

  1. JavaScript 选择此列表中的复选框并获取其 ID 1、2、3 等。
  2. 使用 JSON.stringify 将创建的数组转换为 JSON
  3. PHP 获取 POST 并使用 json_decode() 对其进行解码(此操作失败)

$(document).ready(function(){

$('.action_trash').on('click', function(){

//Select items to trash
var TrashItems = [];
$('input:checked').each(function() {

TrashItems.push($(this).attr("id"));
});
//Convert to JSON
var TrashJSON = JSON.stringify(TrashItems);
alert (TrashJSON);
$.ajax({
type: "POST",
url: "pages/forms_intake/actions/trash/model_trash.php",
data: {TrashItems:TrashItems},
cache: false,

success: function(){
// do stuff to remove trashed elements from list.
}
});
});
});

我正在尝试将简单的 Javascript 数组转换为 JSON。但我认为 JSON 无效。当我警告 TrashJSON 变量时,输出如下:["31","32"]

<?php
session_start();
include "../../../../php/config.php";

$TrashJSON = $_POST['TrashItems'];
var_dump(json_decode($TrashJSON));

//Trash items
//$TrashQuery = mysqli_query ($mysqli, "UPDATE forms_intake SET item_trashed=1 WHERE formid='$TrashInt'");

//Close connection
mysqli_close($mysqli);
?>

当我运行此程序时,我收到此错误:

<br />
<b>Warning</b>: json_decode() expects parameter 1 to be string, array given in <b>/home/nickvmf103/domains/a-training.nl/public_html/sotwebapp/pages/forms_intake/actions/trash/model_trash.php</b> on line <b>7</b><br />
NULL

根据 PHP 手册中有关 json_decode 的内容,如果 JSON 无效,则输出 null。

所以我的问题是:如何在我的 javascript 中正确格式化 JSON?这样就可以传递给 PHP 并转换为 PHP 数组。

附加信息:成功转换为 PHP 数组后,我将使用 implode 在数组值之间放置“OR”,将其转换为字符串并在 SQL 查询 WHERE 语句中使用它来删除页面上检查的项目。

最佳答案

为了使现有 PHP 按您期望的方式运行,您需要发送 TrashJSON 而不是 TrashItemsTrashItems 是您填充的数组,而 TrashJsonTrashItems 的 JSON 编码版本。

改变

data: {TrashItems:TrashItems},

到..

data: {TrashItems:TrashJSON},

jQuery 正确地将 TrashItems 解释为数组,从而将其作为值数组发送到 PHP 脚本。

或者,正如 Barmar 在评论中推断的那样,您可以简单地循环当前作为 TrashItems 发布的值数组。您可以使用以下代码来完成此操作。

foreach ($_POST['TrashItems'] as $TrashItem) {
echo "$TrashItem\n";
}

这将在单独的行上输出您最初传入的 TrashItems 数组的每个项目,并提供......的输出。

31
32

关于javascript - 在 Javascript 中正确格式化 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25568420/

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