私がダウンして、複数のドロップを作るために、このサイトのオフに探しています:Roshan's BlogAJAX複数のドロップダウン
そして、それのほとんどが働いている、私はちょうどダウンボックス第三のドロップに問題を抱えています。
(Dropdown1:クライアント、Dropdown2:場所、Dropdown3:ゾーン)これまでの私のページで
、私はソースを見れば、最初のドロップダウン(クライアント1)を選択した後、2番目のドロップダウン文は言う:
<select style="width: 150px;" id="add-event-dialog-location" name="add-event-dialog-location" onchange="getZone(Client1,this.value)">
これはどちらが必要なのですか。しかし、2番目のドロップダウンのオプションの1つをクリックすると、getZone()スクリプトを使用しません。 'zonediv'は変更されていません。残っているかどうかはわかりません。 getZone.phpを単独でロードしてURLに自分自身のGETステートメントを置くと、結果が得られますが、ドロップダウンを呼び出すページ内でgetZone.phpを取得できません。
私はおそらくちょっとしたものを見逃しているかもしれませんが、私はずっとそれを見てきました。私はそれを理解できません。
HTML:
<select style="width: 150px;" name="add-event-dialog-client_name" id="add-event-dialog-client_name" onchange="getLocation(this.value)">
<?php
echo "<option selected='selected' disabled='disabled'>-Client Name-</option>";
$result = mysql_query("SELECT DISTINCT client_name FROM spc_clients");
while($row = mysql_fetch_array($result)){
echo "<option value='".$row['client_name']."'>".$row['client_name']."</option>";
}
?>
</select>
<p id="locationdiv">
<select style="width: 150px;" name="add-event-dialog-location" id="add-event-dialog-location" disabled="disabled">
<option>Select Client First</option>
</select>
</p>
<p id="zonediv">
<select style="width: 150px;" name="add-event-dialog-zone" id="add-event-dialog-zone" disabled="disabled">
<option>Select Location First</option>
</select>
</p>
JS機能の両方:
function getLocation(client_name) {
var strURL="display/getLocation.php?client_name="+client_name;
var req = getXMLHTTP();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById('locationdiv').innerHTML=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
}
req.open("GET", strURL, true);
req.send(null);
}
}
function getZone(client_name,location) {
var strURL="display/getZone.php?client_name="+client_name+"&location="+location;
var req = getXMLHTTP();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById('zonediv').innerHTML=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
}
req.open("GET", strURL, true);
req.send(null);
}
}
getLocation.php:
<?php
include 'connect.php';
$client = $_GET['client_name'];
$query="SELECT location FROM spc_clients WHERE client_name='$client'";
$result=mysql_query($query) or die(mysql_error());
?>
<select style="width: 150px;" id="add-event-dialog-location" name="add-event-dialog- location" onchange="getZone(<?=$client?>,this.value)">
<option selected='selected' disabled='disabled'>-Location-</option>
<?php
while($row = mysql_fetch_array($result)){
echo "<option value='".$row['location']."'>".$row['location']."</option>";}
?>
</select>
getZone.php:
<?php
include 'connect.php';
$client = $_GET['client_name']; echo $client;
$location = $_GET['location']; echo $location;
$query="SELECT zone FROM spc_clients WHERE (client_name='$client' && location='$location')";
$result=mysql_query($query) or die(mysql_error());
?>
<select style="width: 150px;" id="add-event-dialog-zone" name="add-event-dialog-zone">
<option selected='selected' disabled='disabled'>-Zone-</option><option><?php
while($row = mysql_fetch_array($result)){
echo $row['zone'];}
?>
</option>
</select>
Firefoxでhttp://getfirebug.com/、またはChromeの開発ツールを使用して、JavaScriptエラーを探したり、AJAX呼び出しの結果を確認しようとしましたか? – jessica
Operaのエラーコンソールで「Uncaught exception:ReferenceError:Undefined variable:Client1」が表示されます。それでも、理由は分かりません。 – Nicole
ああ、私は今問題を見る。私は答えを投稿します。 – jessica