0

onclickイベントで2つの選択ドロップダウンをチェーンしようとしていますが、ほとんど成功していません。これは私がこれまでに達成できたことです。

これはこれまでの私のコードです:

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ドロップダウンで行われた選択に基づく値を入力しようとしています(このイベントは、ページの読み込み時にも開始する必要があります。ただし、ユーザーが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 に答える