链接选择jQuery中的页面加载/ onclick事件

时间:2013-02-12 01:19:54

标签: php jquery mysql

我正在尝试使用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 下拉列表中没有任何内容刷新。我有什么变化需要对我的代码进行排序才能解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

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

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

我还会将$("#dept").click(更改为$("#dept").change(,这样对没有鼠标的用户就可以使用,因此只会在更改时加载新数据,而不仅仅是点击时。