在Javascript中正确格式化JSON数组

在Javascript中正确格式化JSON数组,javascript,php,jquery,arrays,json,Javascript,Php,Jquery,Arrays,Json,我正在编写一个简单的删除函数。此函数用于删除PHP输出的列表中的条目。情况就是这样: javascript选择此列表中的复选框并获取其ID 1、2、3等 使用JSON.stringify将创建的数组转换为JSON PHP获取POST并使用json_decode()对其进行解码(此操作失败) 我正在尝试将简单的Javascript数组转换为JSON。但是我认为JSON是无效的。当我提醒垃圾JSON变量时,这是输出:[“31”,“32”] 为了让现有的PHP按照您所期望的方式运行,您需要发送Tra

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

  • javascript选择此列表中的复选框并获取其ID 1、2、3等
  • 使用JSON.stringify将创建的数组转换为JSON
  • PHP获取POST并使用json_decode()对其进行解码(此操作失败)
  • 我正在尝试将简单的Javascript数组转换为JSON。但是我认为JSON是无效的。当我提醒垃圾JSON变量时,这是输出:[“31”,“32”]


    为了让现有的PHP按照您所期望的方式运行,您需要发送
    TrashJSON
    ,而不是
    TrashItems
    TrashItems
    是您填充的数组,而
    TrashJson
    TrashItems
    的JSON编码版本

    改变

    data: {TrashItems:TrashItems},
    

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

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

    foreach ($_POST['TrashItems'] as $TrashItem) {
        echo "$TrashItem\n";
    }
    
    这将输出最初在单独一行中传入的
    TrashItems
    数组的每个项,并提供..的输出

    31
    32
    

    从jQuery向PHP发送数组时,不需要使用JSON。如果发送数组,jQuery将正确地对其进行URL编码,PHP将自动对其进行解码。
    data: {TrashItems:TrashItems},
    
    data: {TrashItems:TrashJSON},
    
    foreach ($_POST['TrashItems'] as $TrashItem) {
        echo "$TrashItem\n";
    }
    
    31
    32