2009-04-26 4 views
1
나는 JQuery와 $의 아약스()를 사용하기 시작하고

로 잃었지만 난 ...이 보낼 것을 다시 얻을 수 없습니다은 다소 JQuery와 + PHP + json으로

$(function(){ 
      $.ajax({ 
       url: "graph_data.php", 
       type: "POST", 
       data: "casi=56&nada=48&nuevo=98&perfecto=100&vales=50&apenas=70&yeah=60", 
       dataType: "json", 
       error: 
       function (xhr, desc, exceptionobj) { 
        document.writeln("El error de XMLHTTPRequest dice: " + xhr.responseText); 
       }, 
       success: 
       function (json) { 
        if (json.error) { alert(json.error); return; } 
        var output = ""; 
        for (p in json) { 
         output += p + " : " + json[p] + "\n"; 
        } 
        document.writeln("Results: \n\n" + output); 
       } 
      }); 
     }); 

및 내

<?php 

$data = $_POST['data']; 

function array2json($data){ 
    $json = $data; 

    return json_encode($json); 
} 
?> 

내가이 실행할 때 내가 함께 온 : PHP는

결과 :

,

PHP에서 echo array2json 문을 사용하는 것과 비슷하지만 그냥 횡설수설을주었습니다 ... 나는 정말로 내가 무엇을 잘못하고 있는지를 모르고 있으며 약 3 시간 동안봤을뿐입니다. 같은 물건. 또한 웹 페이지에서 정보를 얻는 것과 같은 다른 방법으로 $ .ajax 함수의 "data :"매개 변수를 전달하는 방법을 모르겠지만 아무도 도와 줄 수 없습니까?


편집

나는 당신이 무엇을 제안했고, 그 데이터가 지금은에 데이터를 보낼 수있는 방법, 궁금하지만) 대단히 = 감사 인쇄 "데이터 :"부분 jQuery를에 그래서 사용자 입력의 말을하자에서 소요, 또한 나는 PHP 문서를 확인하고 있었고, 그것은 내가 좋아하는 뭔가를 쓸 수 있어요 말한다 : 내가 만약 내가 없다는 오류를 얻을,

json_encode($a,JSON_HEX_TAG|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_HEX_AMP) 

그러나 json_encode는 1 개의 매개 변수를 받아들이고 2를 제공합니다. ... 왜 그런지? 나는 PHP를 사용하고있다.

+0

dataType : "json"- 소문자로 유지하십시오. – Anthony

답변

7

첫째로, PHP 스크립트에 넘겨주는 데이터는 $_POST['data']이 아니라 $_POST이 될 것이다.

다음 : 일부 데이터로 실제로 array2json 함수를 호출해야합니다 ... 전체 코드 샘플입니까?

또한 array2json이해야 할 일이 무엇인지 잘 모르겠습니다 ... json_encode으로 직접 전화하지 않으시겠습니까? 귀하의 예를 들어

당신은 단순히 당신의 PHP 파일은 다음과 같이 할 수 있습니다 : Firebug 쉽게 AJAX 호출을 디버깅하는 것처럼

print json_encode($_POST); 

마지막으로, 당신이 도구를 얻어야한다.

편집 : 당신이 할 일은 당신의 페이지에 어디서나 form

사용자로부터 데이터를 전송하기 위해서는, 다음의 submit 이벤트를 잡을 serialize 데이터를하거나 get the value 개별 입력 필드의 그런 다음 문자열 또는 객체로 데이터 쿼리를 구성 할 수 있습니다. jQuery 용으로 매우 인기있는 Form plugin도 있으므로 쉽게 사용할 수 있습니다.

오류가 발생하는 이유는 json_encode의 두 번째 인수가 PHP 5.3.0까지 추가되지 않았기 때문입니다. 그래서 당신이 이전에 가지고있는 것이 있다면 그것은 당신에게 유용하지 않습니다.

+0

이것은 환상적인 답변입니다!질문에 답변하고 정보 전송을 수행하는 방법을 제안 해 주셔서 감사합니다. 이것은 FAQ/HOWTO 자료입니다. –