【发布时间】:2016-08-09 11:55:25
【问题描述】:
我的用户需要从第一个<select> 中选择一个选项,根据他的选择,第二个<select> 应该提供不同的选项。
您可能在许多网站上选择国家后选择州时看到了这一点。
我知道还有数百个类似的问题,但我尝试了很多他们的答案,但都没有成功。
所以,这就是我现在的位置:
<div class="col-md-2">
<span class="input-group-addon" id="basic-addon1" style="border:solid 1px #CCC; border-radius:4px;">Juzgado: </span>
<select class="form-control" id="juz" name="juz">
<option value="1">Juzgado 1</option>
<option value="2">Juzgado 2</option>
<option value="3">Juzgado 3</option>
</select>
</div>
<div class="col-md-2" id="nomDiv">
<span class="input-group-addon" id="basic-addon1" style="border:solid 1px #CCC; border-radius:4px;">Nominación: </span>
<select class="form-control" id="nom" name="id_juz_nom">
</select>
</div>
那么……我的 AJAX
<script type='text/javascript'>
$(document).ready(function(){
$('select[name=juz]').on('change', function() {
var juz = $(this).val()
$.ajax({
url: "tomarNominaciones.php",
type: "POST",
data: { juz.value },
success: function (response) {
document.getElementById('nom').innerHTML= response;
}
});
});
});
</script>
最后这是我的 PHP:
<?php
$juz = $_POST['juz'];
include 'conectar.php';
mysql_select_db('juz_nom');
$query = "SELECT * FROM juz_nom WHERE juzgado=\"".$juz."\"";
$result = mysql_query($query);
?>
<span class="input-group-addon" id="basic-addon1" style="border:solid 1px #CCC; border-radius:4px;">Nominación: </span>
<select class="form-control" id="nom" name="id_juz_nom">
<option>Seleccione Nominación</option>
<?php while ($row=mysql_fetch_array($result)) { ?>
<option value=<?php echo $row['id_juz_nom']?>><?php echo $row['nominacion']?></option>
<?php } ?>
</select>
我尝试了很多方法,例如this one 和this other one。没有任何成功。
所以,明确地说,我需要做的是:用我的 MySQL 查询返回的尽可能多的选项填充我的第二个选择。
【问题讨论】:
-
好的,那什么不起作用?
-
juz.value将是未定义的,因为juz已经是一个字符串。.val()已经提取了值。 -
不幸的是,这是不对的:恶意用户可以自己发送一个帖子请求,包含他们喜欢的任何值。
-
@GonHL 不,可以直接向您的 PHP 页面发出请求,或者用户可以修改 DOM 以发送其他内容。永远不要相信客户端输入。也可以使用
@标记用户。 -
停止使用已弃用且自 PHP7 起已移除 mysql_* 函数。迁移到 PDO 并开始使用 Prepared Statements。