2016-11-03 2 views
0

이 포럼에서 여러 번 전에 질문을 받았지만 뭔가 빠졌다고 생각합니다. 아니면 JSON/AJAX를 잘 모르기 때문일 수도 있습니다.PHP에서 자바 스크립트 배열 사용

여기 있습니다.
1에서 10까지의 배열에 숫자를 넣을 수있는 index.php에 대한 자바 스크립트/JQuery 코드가 있습니다 (아직 별도의 JS 파일이 아님). 이미 포함되어 있으면 다시 클릭하면 제거됩니다.

이제는 JS 배열을 PHP로 전달하여 테이블을 만들 수 있습니다.

다음은 내가 수행 한 작업입니다.

$(".Go").click(function() { 
    var enc = JSON.stringify(tableChoice); 
    $.ajax({ 
     method: 'POST', 
     url: 'calc.php', 
     data: { 
      elements: enc 
     }, 
     success: function(data) { 
      console.log(enc); 
     } 
    }); 
}); 

그리고 calc.php에서이 값을 PHP로 가져 왔습니다. 내 (.Go) 버튼을 클릭하면
은, 무슨 일이 정말 발생 :

<?php 
    $data = json_decode($_POST['elements'],true); 
    echo $data; 
?> 

지금 여기 멍청한 놈 질문 온다?
console.log에 올바른 값이 표시되지만 액세스하려면 어떻게해야합니까? 페이지 (index.php)는 자동으로 calc.php로 이동하지 않습니다.
나는 거기 데려다 것 <form> 태그를 사용할 때,하지만이 오류를 보여줍니다

정의되지 않은 인덱스 : 요소

내가 잘못 그것을 해석이 잘못된 길에서 찾고 확신합니다. 누군가가 내가 PHP에서 JS 배열을 계속하기 위해해야 ​​할 일이 무엇인지 이해할 수 있도록 도와 줄 수 있습니까?

+0

당신이'을 console.log (데이터)'하지 않겠 : PHP에서

$(".Go").click(function() { var enc = JSON.stringify(tableChoice); $.ajax({ method: 'POST', url: 'calc.php', data: { "elements="+enc; }, success: function(data) { console.log(data);// You can use the value of data to anywhere. } }); }); 

? –

+0

Ajax 또는 비동기 JavaScript 및 XML은 웹 사이트를 새로 고칠 필요없이 데이터를 서버로 보내고 서버에서 수집 할 수있는 대화 형 웹 사이트 용으로 설계된 개념입니다. 귀하의 브라우저는'calc.php '로 이동하지 않아야합니다. 대신에,'calc.php'는 데이터를'index.php' 파일에 되 돌립니다. '$ data'는 배열입니다. 따라서 실제 값을 반환하지 않습니다. 대신에'var_dump ($ data);를 사용해보십시오. – icecub

+0

AJAX 작동 방식에 대한 자습서가 필요하다고 생각합니다. AJAX의 요점은 페이지를 새로 고침하지 않는다는 것입니다. 단지 응답을 되돌려 보내고 자바 스크립트 코드는 응답을 어떻게 처리할지 결정합니다. 결과를 페이지에 표시하려면'$ ("# id")와 같은 DOM 또는 jQuery 메서드를 사용합니다. text (data)' – Barmar

답변

0

XHR 요청을 사용하면 페이지를 다시로드하지 않습니다. $ .ajax 메소드를 사용하면 서버에 데이터를 게시하고 정보를 다시받을 수 있습니다. 콘솔에서 정보를 볼 수 있으므로 성공 방법이 트리거됩니다.

예를 들어 Chrome에서 DevTools를 살펴볼 수 있습니다. XHR에서 네트워크 탭과 필터를 열면 어떤 일이 발생하는지 볼 수 있습니다. 보내고받은 데이터를 조사하여 XHR을 자세히 검사 할 수 있습니다.

그럼 내 질문에 당신이 무엇을하고 싶니? 백엔드에서받은 데이터는 어떻게됩니까? 자바 스크립트에서

0

:

<?php 
if(isSet($_POST[elements])) 
{ 
    $data = json_decode($_POST['elements'],true); 
    echo $data; 
} 
else 
{ 
    echo "Elements not set"; 
} 

?>