PHP、Jquery、AjaxなどのWeb開発言語を学習していて、何時間もこの問題に取り組んできました。また、データベースクエリを経由して(選択した国に関連する都市のリストを表示するリロードせずに複数のドロップダウンメニューからテキストを取得して表示する
- ワン(データベースクエリを経由して)国のリストを表示する
- ワン:
は、私は2つのドロップダウンボックスを持っています)
とにかく、私は両方のメニューボックスのテキストを取得し、無リロードボタンをクリックするだけではなくと同じページ上のテキストボックスに、さらにデータベースクエリでそれらを使用することができるようにしたいです関連するページ。
ダイナミックメニューにはJQueryとAjaxを使用していますので、この作業に必要なものがいくつかあります。ここで問題になっているページのコードは次のとおりです。
<body>
<div class = "country">
<label>Select a Country: </label>
<select name="country" onchange="getId(this.value);">
<option value = "">Select Country</option>
<?php
$query = "SELECT DISTINCT(Country) AS Country FROM Locations ORDER BY Country ASC;";
$results = mysqli_query($con, $query);
foreach ($results as $country) {
?>
<option value = "<?php echo $country['Country']; ?>"><?php echo
$country['Country'] ?></option>
<?php
}
?>
</select>
</div>
</br>
<div class="city">
<label>Select a City: </label>
<select name="city" id="cityList">
<option value="">Select a city</option>
</select>
</div>
<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<script>
function getId(value){
$.ajax({
type: "POST",
url: "getdata.php",
data: "Country="+value,
success: function(data){
$("#cityList").html(data);
}
});
}
</script>
<button id="button">Go</button>
document.getElementById("button").onclick = function(){
document.getElementById("textbox").innerHTML = "<?php $query = mysqli_query($con, "SELECT * FROM Locations WHERE Country='dropdown text' AND City='dropdown text'");
while($results = mysqli_fetch_array($query)){
echo "Name: " . "$results['City']" . "is in" . "$results['Country']" "</option>";
}
?>";
}
</script>
</body>
私はそれが最終的に終わるしたいので、私は、結果をエコーする方法について不明な点だと私は、これまでに取り組んできたPHPファイルが不完全ですテキストボックスをメインページに表示します。私のPHPは次の通りです:
<?php
include_once "connection.php";
if(!empty($_POST['Country'])||($_POST['City'])){
$country = $_POST['Country'];
$city = "SELECT * FROM Locations WHERE Country = '$Country' AND City = '$city'";
$results = mysqli_query($con, $query);
foreach ($results as $city) {
?>
<option value = "<?php echo $city['Country']; ?>"><?php echo $city['City'] ?></option>
<?php
}
}
?>
ご意見やアドバイスをいただければ幸いです。
は、あなたのページを送信する送信ボタンです(デフォルトのタイプは「送信」です)。 – Bindrid
あなたは国を送信して割り当てているだけです。 '$ city'はあなたのクエリであり、' $ query'は割り当てられていません。 'city'ビットを削除し、変数の代入を修正する必要があります。また、SQLインジェクションにもオープンしています。 – chris85