2012-04-19 13 views
0

텍스트 파일 변수를 사용하는 아약스 코드가 있습니다.Ajax에서 PHP로 변수 가져 오기

자바 스크립트 코드

<SCRIPT> 
function go(UserID) { 
var name= encodeURI(document.getElementById('name').value); 
var design= encodeURI(document.getElementById('design').value); 
http.open('get', 'testAjax.php?design='+design+'&name = '+name); 
http.send(null); 
} 
</SCRIPT> 

에게 HTML 코드는 값을 경고하지만, 내가 PHP를 얻을하고자 할 때, 그것은 나에게 정의되지 않은 인덱스의 오류를 제공

<INPUT ID='name' type='text'> 
<INPUT ID='design' type='hidden' value="<?php echo $UserID; ?>"> 
<A href="?process" onclick="javascript:go(<?php echo $UserID; ?>)">Link</A> 

PHP 코드

if(isset($_GET['process'])) { 
echo $_GET['design']; 
echo $_GET['name']; 
} 

해결 방법을 알려주십시오.

+0

은 검색 엔진을 나타냅니다. jquery를 사용하면 더 쉽게 작업 할 수 있습니다. –

+0

모두 자바 스크립트 코드입니까? 여기서 볼 수있는 xmlHttpRequest 객체를 만들지 않았습니다. 또한'get'는 대문자'GET'이어야합니다. –

+0

go() 함수가 false를 반환하지 않습니다. 이것은 귀하의 PHP 스크립트에 대한 정상적인 요청을하게됩니다. 이는 매개 변수없이 프로세스로 요청한다는 의미입니다. (브라우저의 개발자 도구에서 확인할 수 있습니다.) – scalopus

답변

0

onclick 이벤트가있는 앵커 태그가 있습니다. Onclick 이벤트가 발생하면 testAjax.php? url로 아약스 요청을 보냅니다.

앵커 태그를 클릭했을 때의 기본 동작을 차단하지 않았으므로이 Ajax 요청을 보내 자마자 페이지는 ?process으로 리디렉션되며 어떤 경우에는 $_GET 매개 변수로받을 수 없습니다.

아약스가 정상적으로 작동한다고 가정하면 go() 함수 끝에 return false;을 추가하십시오. 또한 서버 측에 if(isset($_GET['process'])) {과 같은 절이 있으므로 다음과 같이 ajax URL을 업데이트해야합니다. testAjax.php?process

+0

감사합니다. Abhinav. 그래서 그냥 onclick 함수를 사용하여 값을 보내고 href가없는 경우 어떻게 PHP 부분을 사용할 수 있습니까? PHP에서 값을 다시 검색 할 수있는 방법을 가르쳐 주시겠습니까? – user1328273

+0

당신이 말한 것을 바꿨습니다. 오류가없고, $ _GET [ 'design']을 울리면 아무 것도 보여주지 않습니다. echo $ _GET [ 'name']; 경고 할 때 JavaScript 부분에 텍스트 파일 값이 표시됩니다. – user1328273

+0

최종 Ajax URL은 다음과 같습니다 :'testAjax.php? process & design = some_value & name = some_name' ... 서버 측 php가' '$ _GET ['design '] ='some_value ''와'$ _GET ['name '] = "some_name"의 값을 얻을 것이다. –

0

좋아,이 문제가 발생했을 가능성이있는 몇 가지 사항을 확인했습니다. 보십시오 : 당신이 볼 수 있듯이

<script> 
    function go(UserID) { 
     var name= encodeURI(document.getElementById('name').value); 
     var design= encodeURI(document.getElementById('design').value); 
     http.open('get', 'testAjax.php?process&design='+design+'&name='+name); 
     http.send(null); 
    } 
</script> 

<input id='name' type='text' /> 
<input id='design' type='hidden' value="<?=$UserID; ?>" /> 
<a href="#" onclick="javascript:go(<?=$UserID; ?>)">Link</a> 

, 우리는 HTML 변수 "프로세스"를 제거하고 AJAX 호출의 일부합니다.