誰かがこのコードで私を助けてくれますか、私は何かが欠けていますが、何がわかりません。最初のリストの項目の 1 つを選択すると、次のボックスが表示されますが、選択するオプションはありません。3 番目のオプションでも同じですが、今回はボックスが表示されません。
合計で約 10 個のドロップダウン リストが必要です。各選択が選択された後、SQL テーブルの価格列を使用して下部の価格を更新します (これを行う方法がわかりません)。これを少なくとも4時間見ていて、どこにも行きません。
ありがとう
ここにhtmlがあります:
<body>
<select style="width: 150px;" name="country" id="add-event-dialog-country" onchange="getState(this.value)">
<?php
echo "<option selected='selected' disabled='disabled'> Select Country</option>";
$result = mysql_query("SELECT DISTINCT country FROM country");
while($row = mysql_fetch_array($result)){
echo "<option value='".$row['country']."'>".$row['country']."</option>";
}
?>
</select>
<p id="statediv">
<select style="width: 150px;" name="add-event-dialog-state" id="add-event-dialog-location" disabled="disabled">
<option>Select State</option>
</select>
</p>
<p id="citydiv">
<select style="width: 150px;" name="add-event-dialog-city" id="add-event-dialog-city" disabled="disabled">
<option>Select City</option>
</select>
</p>
Price =<br>
VAT = <br>
Total Price = <br>
</body>
js スクリプトは次のとおりです。
<script language="javascript" type="text/javascript">
function getXMLHTTP() {
var xmlhttp=false;
try{
xmlhttp=new XMLHttpRequest();
}
catch(e) {
try{
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e1){
xmlhttp=false;
}
}
}
return xmlhttp;
}
function getState(country_Id) {
var strURL="findState.php?country="+country_Id;
var req = getXMLHTTP();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById('statediv').innerHTML=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
}
req.open("GET", strURL, true);
req.send(null);
}
}
function getCity(country_Id,state_id) {
var strURL="findCity.php?country_name="+country_Id+"&state_name="+state_Id;
var req = getXMLHTTP();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById('citydiv').innerHTML=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
}
req.open("GET", strURL, true);
req.send(null);
}
}
</script>
これがfindState.phpです
<?php
include 'classes.php';
$country = $_GET['country'];
$query="SELECT state_name FROM state WHERE country_id='$country'";
$result=mysql_query($query) or die(mysql_error());
?>
<select style="width: 150px;" id="add-event-dialog-location" name="add-event-dialog- location" onchange="getZone('<?=$country?>',this.value)">
<option selected='selected' disabled='disabled'>Select State</option>
<?php
while($row = mysql_fetch_array($result)){
echo "<option value='".$row['state_name']."'>".$row['state_name']."</option>";}
?>
</select>
これがfindCity.phpです
<?php
include 'classes.php';
$country_id = $_GET['country'];
$state_Id = $_GET['state'];
$query="SELECT city_name FROM city WHERE country_id='1' AND state_id='1'";
$result=mysql_query($query) or die(mysql_error());
?>
<select style="width: 150px;" id="add-event-dialog-location" name="add-event-dialog- location" onchange="getZone('<?=$country?>',this.value)">
<option selected='selected' disabled='disabled'>Select State</option>
<?php
while($row = mysql_fetch_array($result)){
echo "<option value='".$row['city_name']."'>".$row['city_name']."</option>";}
?>
</select>
私の SQL データベースには 3 つのテーブルがあります
ID、国、価格の 3 つの列を持つ国と呼ばれる 1 番目のテーブル
id、country_id、state_name、price の 4 つの列を持つ state という名前の 2 番目のテーブル
id、country_id、state_id、city_name、price の 5 つの列を持つ city という 3 番目のテーブル