【发布时间】:2021-05-16 19:44:21
【问题描述】:
我需要根据从下拉列表中选择的国家/地区显示状态。 它使用表数据通过 AJAX 获取和查找相关数据
这是我的 HTML 标记
<label for="country">Country</label>
<select class="form-control" id="country">
<option value="">Select Country</option>
<?php
$query = "SELECT * FROM countries";
$result = $con->query($query);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "<option value='{$row["country_refer"]}'>{$row['country_name']}</option>";
}
}
else
{
echo "<option value=''>Country not available</option>";
}
?>
</select><br>
<!-- State drop down -->
<label for="state">State</label>
<select class="form-control" id="state">
<option value="">Select State</option>
</select>
<br>
这是我将选项值发布到 action.php 页面的 javascript 代码
<script type="text/javascript">
$(document).ready(function(){
// Country dependent ajax
$("#country").on("change",function(){
var countryId = $(this).val();
alert(countryId);
if (countryId) {
$.ajax({
url :"action.php",
type:"POST",
cache:false,
data:{countryId:countryId},
success:function(data){
$("#state").html(data);
alert(data);
}
});
}
});
});
这是我的 action.php 页面
<?php
// Include the database config file
include_once 'dbConfig.php';
// Get country id through state name
$countryId = $_REQUEST['countryId'];
if (!empty($countryId)) {
// Fetch state name base on country id
$query = "SELECT * FROM states WHERE country_refer = {$countryId}";
echo "$query";
$result = $con->query($query);
if ($result->num_rows > 0)
{
while ($row = $result->fetch_assoc()) {
echo '<option value="'.$row['id'].'">'.$row['state_name'].'</option>';
}
}
else{
echo '<option value="">State not available</option>';
}
}
?>
状态没有出现在我的下拉菜单中并显示此错误我已在此处附上屏幕截图。
我使用 alert 来查找这里发生的情况,它会抛出此错误。
这是我的 Sql 文件
CREATE TABLE `countries` (
`id` int(11) NOT NULL,
`country_refer` varchar(50) NOT NULL,
`country_name` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `countries` (`id`, `country_refer`, `country_name`VALUES
(1, 'India', 'India'),
(2, 'Pakistan' ,'Pakistan'),
(3, 'America','America'),
(4, 'China','China');
CREATE TABLE `states` (
`id` int(11) NOT NULL,
`country_refer` varchar(50) NOT NULL,
`state_name` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `states` (`id`, `country_refer`, `state_name`) VALUES
(1, 'India', 'Andhra Pradesh'),
(2, 'India', 'Gujarat'),
(3, 'America', 'Florida'),
(4, 'America', 'New Jersey'),
(5, 'China', 'Chongqing'),
(6, 'China', 'Shanghai'),
(7, 'India', 'Delhi'),
(8, 'India', 'Mumbai');
【问题讨论】:
-
你想要国家和州名而不是 id 吗??
-
是的...我不需要