2016-07-29 4 views
1

"올바른", "잘못된"같은 값을 가진 자바 스크립트 배열이 있습니다. 아약스를 사용하여이 배열을 PHP 파일에 보내고 싶습니다. 그러나 어떻게 익숙하지 않은 나는. 이것은 내가 지금까지 시도한 것이고 jquery없이 이것을하고 싶습니다.jquery를 사용하지 않고 아약스를 통해 자바 스크립트 배열 보내기

var jsonString = JSON.stringify(hold); 
var xmlhttp = new XMLHttpRequest(); 

xmlhttp.onreadystatechange = function() { 
    // 
} 

xmlhttp.open("POST","result.php",true); 
xmlhttp.setRequestHeader("Content-type", "application/json"); 
xmlhttp.send(jsonString); 

않도록 송신 JSON 문자열 :

var hold=[]; 
    for(t = 0;t <= 10; t++){ 
    answers_Arr = document.getElementsByName("question"+t); 
    for (k = 0; k < answers_Arr.length; k++){ 
     if(answers_Arr[k].checked){ 
      hold[t] = answers_Arr[k].value; 
      //document.getElementById("test"+t).innerHTML = "Value: "+ hold[t]; 
      break; 
     }else{ 
      hold[t] = "no"; 
      continue; 

     } 
    } 
} 
var jsonString = JSON.stringify(hold); 
var xmlhttp = new XMLHttpRequest(); 
xmlhttp.onreadystatechange = function() 
{ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("test1").innerHTML= xmlhttp.responseText; 
    } 
} 

xmlhttp.open("GET","result.php?res="+hold[],true); 
xmlhttp.send(); 

} 

답변

2

이 행

xmlhttp.open("GET","result.php?res="+hold[],true); 

교체는 AJAX 통해 POST와 JSON 문자열을 송신하는 예이며 내가 GET 방법으로 f 요청 문자열이 너무 길어지면 브라우저에서 오류가 발생합니다.

는 이제 PHP 스크립트 당신이 $ _POST

편집의 모든 데이터를해야합니다 : application/json으로 PHP의 일부 버전, 다른 Content-type이 요청에 같은데는 $ _POST는 빈 값을 가지고있다. 이 문제를 해결하려면 다음을 수행하십시오.

$_POST = json_decode(file_get_contents('php://input')); 
+0

감사합니다. 당신도 이것을 검색 PHP 스크립트 도와 줄래? –

+0

일반 양식을 통해 보내는 것처럼 $ _POST에 모든 데이터가 있어야합니다. 변수가 무엇인지 알지 못하면'print_r ($ _ POST);로 내용을 인쇄 할 수 있습니다. – Ibrahim

+0

print_r ($ _ POST); 하지만 'array()'만 출력합니다. 그게 전부 야. –

0

여기

xmlhttp.open("GET","result.php?res="+jsonString,true); 
+0

'res'는 여전히 정의되지 않았습니다. 그리고 또한 내가 PHP에서 배열을 표시하면, 그것은 null을 표시 –

+0

당신은 당신의 PHP 스크립트에서 정의되지지고 있다는 뜻인가요? – atul

+0

이것은 PHP 스크립트에서 사용한 것입니다. ** '$ res = json_decode (stripslashes ($ _GET ['res '])); echo json_encode ($ res); '** –

관련 문제