我有两个选择,一个我加载国家,另一个是根据首先选择的国家“做出反应”的省份。我最近咨询了如何从数据库中获取国家代码并使该国家选择显示来自数据库的国家,但我也有一个我从数据库中带来的省份。现在,应用这个负载,省份的选择“没有反应”,因为它不是根据通过数据库数据选择的选择来加载的。选择的国家/地区包含:
<select id="pais" class="ui fluid search dropdown" name="pais">
<option value="0"></option>
<?php
$conexion = new Conexion();
$stmt = $conexion -> prepare("SELECT paiscod, paisnom FROM paises ORDER BY paisnom");
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
if ( $row['paiscod'] == $pais ) { ?>
<option value = "<?php echo $row['paiscod']?>" selected><?php echo ($row['paisnom'])?></option>
<?php } else { ?>
<option value = "<?php echo $row['paiscod']?>"><?php echo ($row['paisnom'])?></option>
<?php }
}
?>
</select>
<select id="provincias" class="ui fluid search dropdown" name="selectProvincias">
<option value=""></option>
</select>
$id_pais = $_POST['id_pais'];
$conexion = new Conexion();
$stmt = $conexion -> prepare("SELECT provincod, provinnom FROM provincia WHERE paiscod = :valor");
$stmt->bindParam(':valor', $id_pais);
$stmt->execute();
if ($stmt->rowCount() > 0) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$html .= '<option value = "'.$row['provincod'].'">'. $row['provinnom'].'</option>';
}
}
echo $html;
<script language="javascript">
$(document).ready(function() {
$("#pais").change(function() {
$("#pais option:selected").each(function() {
id_pais = $(this).val();
$.post("provincias.php", {
id_pais: id_pais
}, function(data) {
$("#provincias").html(data);
});
});
})
});
</script>
问题1:为什么js在从数据库中取值时,不识别选择国家的变化?
QUESTION 2: 我如何通过 BD 来的省份代码,以便它显示我选择的省份?
我将允许自己部分评论有关您的代码的一些事情。
我想在评论中告诉你,但空间不给我。
你没有在你的问题中说出来,但我认为这段代码在不同的文件中
provincias.php
假设文件名为
paises.php
.中的代码
paises.php
:1. 不要准备已经准备好的东西
当涉及来自其他地方的数据时,使用准备好的查询。不是这里的情况。查询已经准备好,直接通过以下方法发送是没有风险的
query
:因此,这就足够了:
2.您的整个过程
while
可以这样简化:3. 脚本必须在
paises.php
:正如评论中所说,您可以改进它。我想在 HTML 中你有一个 id 为
provincias
.该脚本虽然可以工作,但使用
$(document).ready(function() {...
了已弃用的代码:从 jQuery3 开始已弃用。建议使用$(function() {...
。同样,建议 Ajax 请求至少具有处理
done
成功和fail
失败的能力(请参阅此处)。通过 Ajax/jQuery 发出的请求必须被定向到不同的文件。在这种情况下,它是请求的 url 中指示的文件
provincias.php
。中的代码
provincias.php
: