2012-04-18 6 views
0

を選択れるonchange http://www.w3schools.com/php/php_ajax_database.aspパス複数の変数は、私はW3schools.com(アヤックス、PHPとMySQL)からこのスクリプトで探しています

<html> 
<head> 
<script type="text/javascript"> 
function showUser(str) 
{ 
if (str=="") 
    { 
    document.getElementById("txtHint").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("txtHint").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","getuser.php?q="+str,true); 
xmlhttp.send(); 
} 
</script> 
</head> 
<body> 

<form> 
<select name="users" onchange="showUser(this.value)"> 
<option value="">Select a person:</option> 
<option value="1">Peter Griffin</option> 
<option value="2">Lois Griffin</option> 
<option value="3">Glenn Quagmire</option> 
<option value="4">Joseph Swanson</option> 
</select> 
</form> 
<br /> 
<div id="txtHint"><b>Person info will be listed here.</b></div> 

</body> 
</html> 

これは、4つの値を持つ単純な選択を示しています。

これはPHPスクリプトです。

<?php 
$q=$_GET["q"]; 

$con = mysql_connect('localhost', '*', '*'); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("ajax_demo", $con); 

$sql="SELECT * FROM user WHERE id = '".$q."'"; 

$result = mysql_query($sql); 

echo "<table border='1'> 
<tr> 
<th>Firstname</th> 
<th>Lastname</th> 
<th>Age</th> 
<th>Hometown</th> 
<th>Job</th> 
</tr>"; 

while($row = mysql_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['FirstName'] . "</td>"; 
    echo "<td>" . $row['LastName'] . "</td>"; 
    echo "<td>" . $row['Age'] . "</td>"; 
    echo "<td>" . $row['Hometown'] . "</td>"; 
    echo "<td>" . $row['Job'] . "</td>"; 
    echo "</tr>"; 
    } 
echo "</table>"; 

mysql_close($con); 
?> 

今、私はそれを行うのですかどのように、それが何を理解し、それをどのように動作するか、誰かが選択ボックスの値を変更したときの、私はPHPスクリプトに3つの以上の変数を渡したいとしましょう?

+0

getuser.phpのクエリ文字列を変更することでこれは、onChange関数を変更すること、またはそれらのうちの多くを追加することを意味します。あるいは、onChange関数を変更して、各フォームフィールドの値をIDで選択します。さて、質問にはユーザー名/パスワードを絶対に投稿しないでください。あなたが "テスト"/"デモ"を掲示したとしても、あなたが悪い習慣に陥ると、実際のものを誤って投稿することは簡単です。これが最初からやっていることであれば、ブラウザ間の互換性を助けるjQueryを単純化するためのフレームワークを検討することを検討します。 –

+0

日付のようなもの(今日の日付ではない)と時刻を送信したい場合はどうすればいいですか? このコードを変更する必要がありますか? xmlhttp.open( "GET"、 "getuser.php?q =" + str、true); dまたはtという変数を渡したい場合は、xmlhttp.open( "GET"、 "getuser.php?q =" + str、true "&d =" + date、true); それは何ですか? – Student

+1

http://bobby-tables.com/ - '$ _GET [" q "]'値が '1 'だった場合はどうなりますか?ドロップテーブル; - '? – fcalderan

答えて

0

のようなものは、ここ2つの選択からの値をとる例だ、との両方が

// Notice the arguments are gone at the moment 
function showUser() { 
    // Retrieve values from the selects 
    var u = document.getElementByID('userSelect').value; 
    var g = document.getElementByID('groupSelect').value; 

    if (u=="" || g == "") { 
     document.getElementById("txtHint").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("txtHint").innerHTML=xmlhttp.responseText; 
     } 
    } 

    xmlhttp.open("GET","getuser.php?u="+u+"&g="+g,true); 
    xmlhttp.send(); 
} 
に充填されているAJAX呼び出しを提出します

基本形

<form> 
    <select name="users" id="userSelect" onchange="showUser()"> 
     <option value="">Select a person:</option> 
     <option value="1">Peter Griffin</option> 
     <option value="2">Lois Griffin</option> 
     <option value="3">Glenn Quagmire</option> 
     <option value="4">Joseph Swanson</option> 
    </select> 
    <select name="groups" id="groupSelect" onchange="showUser()"> 
     <option value="">Select a group:</option> 
     <option value="a">Aerosmith</option> 
     <option value="k">Kiss</option> 
     <option value="l">Led Zeppelin</option> 
     <option value="m">Metallica</option> 
    </select> 
</form> 

これはあなたがしかしけれども素晴らしいオプションではありません、あなたがロジックに多くの時間を費やすのではなく、ブラウザの互換性

を確保することができるようになりますように述べたようにすることなのjQuery(http://jquery.com/)としてフレームワークを使用してにすることをおをお勧めしますそれを試してみてはどうでしょう。試しに何か試してみて、何が起こるか見てみましょう。(ライブデータを削除していない限り)

0

複数の値を送信するには、それに応じてクエリ文字列を変更してください。

xmlhttp.open("GET","getuser.php?q="+str,true); 

、私のコメントに続き

xmlhttp.open("GET","getuser.php?q="+str+"&nextvar="+value1,true);