gpt4 book ai didi

javascript - 将数组从 php 传递到 ajax 时,JSON 中位置 0 出现意外标记 C

转载 作者:行者123 更新时间:2023-11-30 09:13:30 24 4
gpt4 key购买 nike

我正在尝试将数组从 php 发送到 json 文件中的 ajax,但是当我警告 res var 进行测试时,我看到此错误消息:

未捕获的语法错误:JSON 中位置 0 处出现意外的标记 C

我的数组是这样的:

["C", "Dbm", "Bb", "Bb", "F", "Cm", "Eb", "Dbm", "Bb", "Bb", "F", "Cm", "F", "Bb", "Eb", "Bb", "F",…]

当用户单击 View 中的按钮时,我的由 php 函数创建的数组和数组项将有所不同。

Java 脚本:

$(".T-chords").on('click',function(event){

event.preventDefault();
var This = $(this);
$.ajax({

url : data.ajax_url,
type : 'post',
dataType: 'json',
data : {

action : 'transpose_callback',
content : data.content,
target_scale : This.text(),
base_scale : data.base_scale,
},

success:function(response){

var res = JSON.parse(response);
alert(res[1]);

},

error: function(){

alert("err");

}


})

})

PHP 代码:

function Ajax_transpose_callback(){
header('Content-Type: application/json');
$content = $_POST['content'];
$Target_Scale = $_POST['target_scale'];
$Base_Scale = $_POST['base_scale'];
$Flag_db = "";
$transposed_chord = "";
$transposed_arr = array();

if(preg_grep('/#/', $content)){
$Flag_db = "0";
}
elseif (preg_grep('/b/', $content)){
$Flag_db = "1";
}
else{
$Flag_db = "0";
}

foreach ($content as $item) {

$final_item = substr( $item, 1, - 1 );
$transposed_arr[] = Transpose( $Flag_db, $Base_Scale, $Target_Scale, $final_item );

}
wp_die(json_encode($transposed_arr));
}

最佳答案

您可以通过两种方式修复它,1) 更换 var res = JSON.parse(响应); 警报(res[1]); 和 var res = 响应; 警报(res[1]);

因为在这里你会得到一个数组,而不是一个 JSON 对象。2)或者你可以在这里传递一个关联数组

$transposed_arr = array("c"=>"C", "Dbm"=>"Dbm","Bb" =>"Bb");
json_encode($transposed_arr)

关联数组将生成一个 JSON 对象,您可以在其上应用

 var res = JSON.parse(response);

关于javascript - 将数组从 php 传递到 ajax 时,JSON 中位置 0 出现意外标记 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56849076/

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