0

我正在尝试使用 onclick 事件链接两个选择下拉列表,但收效甚微。这是我迄今为止设法实现的目标。

到目前为止,这是我的代码:

表单.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>

进程.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>';
}
?>

我正在尝试使用基于在dept下拉列表中所做选择的值填充moduleCode下拉列表的option(此事件也应在页面加载时启动。但是尽管用户在dept下拉列表中进行了选择,moduleCode下拉菜单中没有刷新任何内容。我需要对代码进行哪些更改才能解决此问题?

4

1 回答 1

2

您的 ajax 调用对 php 的响应没有任何作用,请尝试:

$.ajax({
    type: "POST",
    url: "process.php",
    data: dataString,
    cache: false,
    success: function (html) {
       $('#moduleCode').html(html);
    }
});

我也会更改$("#dept").click($("#dept").change(因此它适用于没有鼠标的用户,因此它仅在更改时加载新数据,而不仅仅是在单击时加载。

于 2013-02-12T01:38:14.377 回答