2011-12-08 2 views
2

이 AJAX 함수에 두 개의 변수를 전달하려고하는데 어떻게 할 것입니까?어떻게 아약스에서 PHP로 여러 변수를 전달합니까?

function showInfo(str) 
{ 
if (str=="") 
    { 
    document.getElementById("txt").innerHTML=""; 
    return; 
    } 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("txt").innerHTML=xmlhttp.responseText; 
    } 
    } 

xmlhttp.open("GET","query1test.php?"+str,true); 
xmlhttp.send(); 

는 그리고 내가이 AJAX의 requestion에 통과 어린 아이 원하는 것은 LNAME, 년입니까? 그것에 대해 갈 길이 있습니까?

<input type="text" name="lname" Onchange="showUser(this.value)"> <br> 
<select name="year" > 
    <option value="2011">2011</option> 
    <option value="2010">2010</option> 
    <option value="2009">2009</option> 
</select> <br> 
<input type="submit" value="submit"> 

귀하의 도움에 감사드립니다. 저는 아직 초보자입니다.

답변

0

str으로 전달하는 내용을 모르지만 쿼리 문자열 일 것으로 예상되는 내용 - 질문에 대한 답변.

xmlhttp.open("GET","query1test.php?lname="+document.getElementById("lname").value+"&year="+document.getElementById("year").value,true); 

을 그리고 추가로 나는 당신의 텍스트 입력 및 선택에 올해의 ID에 LNAME의 ID를 줄 것입니다 : 그래서 내 대답에, 나는 그것이 어떤 검증없이 어떻게 될지에 STR을 대체합니다.

<input type="text" id="lname" name="lname" Onchange="showUser(this.value)"> <br> 
<select id="year" name="year" > 
    <option value="2011">2011</option> 
    <option value="2010">2010</option> 
    <option value="2009">2009</option> 
</select> <br> 
<input type="submit" value="submit"> 

귀하의 요청이 $ _GET vars로 전달됩니다.

jQuery를 사용하고 싶지 않은 이유는 무엇입니까?

+0

Thanks Kai_Qing. jQuery를 사용하지 않은 특별한 이유가 없으므로 익숙하지 않습니다. – user1087799

5

이 경우 JQuery을 사용했을 것입니다. 다른 브라우저를 사용하는 것이 훨씬 쉽습니다. Ajax 부분 (요청 받기)은 한 행으로 완료되며 선택기를 사용하여 필요한 값을 찾을 수 있습니다.

이 코드에서는 "lname"이라는 입력에 대해 onchange 이벤트를 설정합니다. onchange 이벤트가 발생하면 select 요소에서 name 필드와 year 값을 가져옵니다. 그런 다음 query1test.php에게 요청을 보냅니다. PHP 스크립트 (query1test.php)는 $ _GET에서 값을 가져 오지 수에서

$(document).ready(function() { 
    $('input[name="lname"]').change(function() { 
     var name = $('input[name="lname"]').val(); 
     var year = $('select[name="year"]').val(); 
     $.get('query1test.php?name='+name+'&year='+year); 
    }); 
}); 

. 예를 들어 데이터가 PHP 스크립트에서 리턴되는

<?php 

$name = $_GET['name']; 
$year = $_GET['year']; 

echo $name . ' - ' . $year; 

당신은 어떤 작업을 수행 할 수 있습니다. 그 예는 다음과 같습니다.

$.get('query1test.php?name='+name+'&year='+year, function(data) { 
    alert(data); 
}); 
+0

감사! 나는 그것으로 주변을 수리 할 것이다. – user1087799

관련 문제