2013-02-05 3 views
1

적어도 여기에 내 문제가 있다고 생각합니다.^기본적으로, 아약스를 보내는 것은 PHP 스크립트에 문자열을 가져 왔지만, 문자열은 올바르게 분류되지 않았습니다.문자열이 sendig 변수가 올바르지 않습니다.

아약스 조각 : $_GET['identifier']가 비어 몇 가지 이유를 들어

xmlhttp.open("GET","ajaxQuery.php?name="+str+"&identifier="+id,true); 
xmlhttp.send(); 

PHP

//variables sent from Ajax 
$owner = $_GET['name']; 
$identifier = $_GET['identifier']; 

.

Array 
(
[name] => John Doeidentifier=1 
) 

이름은 John Doe하고 id 1이지만, 어떤 이유가 분열되지 않으며, 내가 아는 한, 내 가져 오기 문자열이 정확하게 어떤 아이디어를 컴파일하십시오 print_r($_GET) 나를 보여?

+2

처리받을 수 있도록이 문제를 해결하려면, 당신이해야 할 것은 각 변수를 인코딩합니다. – datasage

+1

사용 & 그게 내가 예측할 수 있습니다 –

+0

당신은''ajaxQuery.php? name = "+ str +"& identifier = "+"대신에 "ajaxQuery.php? name ="+ str + "identifier ="+ id '를 입력하십시오. –

답변

3

문자열 중 하나의 공백으로 인해 url이 손상되었을 가능성이 큽니다. 공백 및 기타 특수 문자는 URI 당신이 아약스 요청에 삽입하는 당신의 변수를 인코딩해야합니다 제대로

xmlhttp.open("GET","ajaxQuery.php?name="+encodeURIComponent(str)+"&identifier="+encodeURIComponent(id),true);

+0

시도를 구현했지만 아무 것도 변경되지 않았습니다. 정확히 encodeURIComponent가하는 일, 죄송합니다 new-ish to ajax – Nick

+0

그것은 문자열을 uri와 호환되는 형식으로 인코딩합니다. 예를 들어 공백은 % 20으로 바뀝니다. uri 구문 분석을 손상시킬 수있는 다른 문자도 유사한 코드로 바뀝니다. – datasage

+0

설명 해 주셔서 감사합니다. 기본적으로'htmlentities'와 동일합니까? 또한, 내 문제를 해결했는데, 어떤 이유로 인덱스 페이지를 새로 고쳐야했습니다. 실제 인덱스 인덱스가 새로 고쳐지기 때문에, 모든 것이 외부에 위치한다는 사실 때문에 필요하지는 않습니다.하지만 감사합니다. – Nick

관련 문제