을 해석하지 : 보시다시피, 이름 및 값이 배열을 유지하도록했다json_decode는 서버에 AJAX를 통해 도착, 나는 다음과 같은 JSON 문자열을 배열
{"Names":"[{0:'asdasd'}]","Values":"[{0:'ad'}]"}
. 문제는 전화 할 때 $data = json_decode(stripslashes($_POST['data']), true); $data['Names'][0]
내가 원하는대로 'asdasd'를 얻지 못하지만, "["
기호입니다. 문제가있는 곳은 어디입니까?
P. JSON 문자열을 전송 JS 코드 :
var arr_names = "[";
names.each(function(i){
arr_names += "{" + i + ":'" + $(this).val() + "'}";
if (i < names.length-1) arr_names += ",";
});
arr_names += "]";
var arr_val = "[";
values.each(function(i){
arr_val += "{" + i + ":'" + $(this).val() + "'}";
if (i < values.length-1) arr_val += ",";
});
arr_val += "]";
var el = { "Names" : arr_names, "Values" : arr_val };
el = encodeURIComponent(JSON.stringify(el));
$.ajax({
type:"POST",
dataType:"html",
data:"m=1&t="+type+"&data="+el,
url:plugin_path+"option-proc.php",
success: function(rsp){
$("#result").html(rsp);
}
});
이름과 값은 클래스가 선택한 텍스트 필드의 무리입니다. m 및 t는 변수 보내지는 경우와 완전히 무관 :)
JSON이 실제로 올바르지 않습니다. 배열은 여러 개의 디코드 패스를 수행해야하므로 강제로 문자열처럼 인코딩되지 않아야합니다. – Pointy
모범 사례 가이드 링크를 제공해 주시겠습니까? – Arnthor
모범 사례 : 1. JavaScript가 아닌 JSON을 작성하십시오. 2. JSON을 사용하여 데이터를 인코딩하십시오. JSON이 먼저 문자열에 내장 한 것들을 직렬화하지 마십시오. – Quentin