我正在尝试使用onclick事件链接两个选择下拉列表,但收效甚微。这是我迄今为止所取得的成就。
到目前为止,这是我的代码:
form.php的
$("#dept").click(function () {
var dept = $("#dept").val();
var dataString = 'dept=' + dept
$.ajax({
type: "POST",
url: "process.php",
data: dataString,
cache: false,
success: function (html) {
$('select.moduleCode').html();
}
});
});
Department
<select name="dept" id="dept">
<option value="<?php echo $loggedin_id; ?>">
<?php echo $_SESSION[$thename]; ?></option>
<option>---------------------------------</option>
<?php
$sql = "SELECT * FROM ts_dept WHERE id<>:id";
$stm = $pdo->prepare( $sql );
$stm->execute( array( ':id' => $loggedin_id ) );
$rows = $stm->fetchAll();
foreach ($rows as $row)
{
echo '<option value="'.$row['id'].'">
'.$row['dept'].'
</option>';
};
?>
</select>
<p>
Module Code
<select name="moduleCode" id="moduleCode">
<option>---------------------------------</option>
</select>
process.php
<?php
require_once("../resources/php/connection.php");
$dept_id = $_POST["dept"];
$sql = "SELECT id FROM ts_module WHERE id=:id";
$stm = $pdo->prepare( $sql );
$stm->execute( array( ':id' => $dept_id ) );
$rows = $stm->fetchAll();
foreach ($rows as $row)
{
echo '<option>'.$row['id'].'</option>';
}
?>
我正在尝试填充 moduleCode 下拉列表中的选项,并根据部门下拉列表中的选择值(此事件也应该在页面加载时启动。但是,尽管用户在 dept 下拉列表中进行了选择,但 moduleCode 下拉列表中没有任何内容刷新。我有什么变化需要对我的代码进行排序才能解决这个问题吗?
答案 0 :(得分:2)
您的ajax调用对您的php的响应没有任何作用,请尝试:
$.ajax({
type: "POST",
url: "process.php",
data: dataString,
cache: false,
success: function (html) {
$('#moduleCode').html(html);
}
});
我还会将$("#dept").click(
更改为$("#dept").change(
,这样对没有鼠标的用户就可以使用,因此只会在更改时加载新数据,而不仅仅是点击时。