2011-12-01 3 views
0

나는 언젠가는 조용히 여기 붙어있다. 내가 할 노력하고 모든이스케이프 json은 PHP에서 배열로 읽을 수

**asdasd #$**&**%^*(AAAA SADQWEASD /// '' \\\ '' l; "" ** 

은 다음과 같습니다 .. 여기

내가 내 텍스트 영역 값으로 전송하고 데이터입니다 .. PHP로 JSON 텍스트를 보내는 과정을하고 응답 bacl을 보낼 것입니다 PHP로 전송 된 JSON (콘솔에서 그것을 가지고) : 나는 아래 JQuery와 아약스 기능을 사용하고

data={"Text":"asdasd #$&%^*(AAAA SADQWEASD /// '' \\\\\\ '' l; \"\" "} 

:

function ajaxfunc(data, path){ 
     $.ajax({ 
      type: "POST", 
      url: path, 
      data: 'data='+data, 
      success: function(response){ 
      } 
     }); 
    } 
,536 PHP에서

, 나는 이것을하고있다. .. & PHP에서 구문 분석 점점되지 않고 따라서 응답은 null입니다 .. 나는 또한 기본적으로 내가 "WYSIWYG"을 기대하고 있습니다 .. 확인은, 새로운 라인 문자가 발견하고 싶었 :

$res = json_decode(stripslashes(escapeJsonString($_POST['feed'])), true); 

function escapeJsonString($value) { 
    # list from www.json.org: (\b backspace, \f formfeed) 

    $search = array("\n", "\r", "\u", "\t", "\f", "\b", "/", '"'); 
    $replace = array("\\n", "\\r", "\\u", "\\t", "\\f", "\\b", "\/", "\""); 
    $result = str_replace($search, $replace, $value); 

    $escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c"); 
    $replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b"); 
    $result = str_replace($escapers, $replacements, $value); 

    return $result; 
} 

echo $res["Text"]; 

문제는 JSON ..로 json_encode 및 json_decode를 사용하여 바로 다음과 같은 방법으로 서버를 사용 직렬화()에 폼 입력을 보내려에 대한 의견을 바탕으로

+1

와 함께 보낼 시도 할 수 있습니다 오타 또는 난독 화 오류가 발생하지만'$ .PATS [ 'feed']'는'$ .ajax' 호출에서 키'data'를 사용하여 데이터를 보냈기 때문에 여러분의 데이터를 포함하지 않을 것입니다. – Andrew

+0

@Andrew : 그렇습니다. 오타가 있습니다. $ _POST [ 'data'] –

+0

당신이하려는 일에 더 좋은 대안이있을 수 있습니다. 왜 json 형식의 데이터를 다시 서버로 보내야합니까? key => value 쌍으로 서버의 데이터에 액세스하려는 경우 JS 객체를 $ .ajax 함수로 전달하면이를 쿼리 문자열로 인코딩 한 다음 서버에 POST합니다. 여기서 뭘하고 싶은지 분명히 할 수 있니? – Simon

답변

1

: 당신이 원하는 모든 액세스 인 경우

$.ajax({ 
    type: "POST", 
    url: path, 
    data: $('form').serialize(), 
    success: function(response){ 
    } 
); 

에 양식 입력 $ _POST 배열을 통해 오류가 발생하면 클라이언트에서 JSON으로 변환하는 것이 낭비입니다. serialize()는 완벽하게 작동합니다.

JSON을 실제로 사용하려면 Douglas Crockford here의 JSON-js 라이브러리를 사용하십시오. 이 주제에 대한 많은 정보가 있습니다 : Serializing to JSON in jQuery. 예 아래 :

$.ajax({ 
    type: "POST", 
    url: path, 
    data: 'data='+(JSON.stringify(data)), 
    success: function(response){ 
    } 
); 
+0

이유 이순신는 아래와 같이 데이터를 전송할 것이다 직렬화() 또는 serializeArray()을 회피하고 대신 의 { "데이터 ":"asdasdas asd "} 위와 같이 PHP로 POST 데이터를 보내려고합니다. –

+0

내에서 새로운 줄 문자를 유지하려고합니다. JSON-js lib를 사용하십시오. 하단의 편집을 참조하십시오. – Simon

0

당신이 JSON 형식의 데이터를 전송하려는 경우, 당신은 어쩌면 이것은이다이

data = {"Text":"asdasd #$&%^*(AAAA SADQWEASD /// '' \\\\\\ '' l; \"\" "}; 
data = JSON.stringify(data); 

은 다음 jquery.ajax 또는 jquery.post

관련 문제