2011-12-08 25 views
2

私はこのAJAX関数に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に渡しTOTたい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

ありがとうKai_Qing。それに慣れていないjQueryを使用しない特別な理由はありません。 – user1087799

5

これはJQueryでした。異なるブラウザを使用している場合はずっと簡単です。 Ajaxの部分(get request)は1行で行い、セレクタを使って必要な値を見つけることができます。

このコードでは、 "lname"という名前の入力に対してonchangeイベントを設定します。 onchangeイベントがトリガーされると、nameフィールドの値とselect要素の年の値が取得されます。それから私はquery1test.phpにリクエストを送ります。 PHPスクリプト(query1test.php)で

$(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); 
    }); 
}); 

あなたは$ _GETから値をretriveことができます。例:

<?php 

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

echo $name . ' - ' . $year; 

PHPスクリプトから返されたデータで何かをしたい場合があります。その例は次のとおりです。

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

ありがとう!私はそれを周りに微妙に変わってきます。 – user1087799

関連する問題