1

ここに完全なコードを投稿しているわけではありませんが、ドロップダウン リストに基づいてチェックボックス内のデータを取得する方法を知りたいです。ユーザーのドロップダウンリストと、チェックボックスにページデータがあります。

テーブルuserに 2 つの列 ( user_iduser)pagesがあり、3 つの列 ( page_iduser_idtitle) があるとします。

ページを更新せずに、選択したユーザーに応じてこれらのチェックボックスが自動的にチェック/チェック解除されることを願っています。次のようにユーザーを取得しているとします

echo '<select name="user_id">';
echo '<option value="">Select User</option>';

$sql = "SELECT * from users";
$res = mysql_query($sql);
while($row = mysql_fetch_assoc($res)) {
    $uid = $row['user_id'];
    $user = $row['user'];
    echo '<option value="'.$uid.'">'.$user.'</option>'; 
}

echo '</select>'; 

選択したユーザーに基づくチェックボックスのデータ (クエリではなくuser_id比較されることを確認してください)IF condition

$user_id = $_POST['user_id']; //selected user from list

$query = "SELECT * from pages";
$result = mysql_query($query);
while($rowPage = mysql_fetch_assoc($result)) {

    $upid = $rowPage['user_id'];
    $pid = $rowPage['page_id'];
    $title = $rowPage['title'];

    if($upid == $user_id) {
        echo '<input type="checkbox" name="userPages[]" value="'.$pid.'" checked="checked"> '.$title;   
    } else {
        echo '<input type="checkbox" name="userPages[]" value="'.$pid.'"> '.$title;
    }
}

ページを更新せずに Ajax/Jquery でどのように可能ですか。私の言いたいことを理解していただければ幸いです。ありがとう

4

1 に答える 1

1

これがあなたができることの答えです

 echo '<select name="user_id" id="userCombo">';
 echo '<option value="">Select User</option>';

 $sql = "SELECT * from users";
 $res = mysql_query($sql);
 while($row = mysql_fetch_assoc($res)) {
    $uid = $row['user_id'];
    $user = $row['user'];
    echo '<option value="'.$uid.'">'.$user.'</option>'; 
 }

echo '</select>';
echo '<div id="userCheckBoxes"></div>'

次に、選択ボックスの変更イベントに ajax 呼び出しを配置し​​ます。ここでは jquery ajax を使用します。

<script type="text/javascript">
 $(document).ready(function()
 {
   $("#userCombo").change(function()
   {
     var id=$(this).val();
     var dataString = 'user_id='+ id;
     $.ajax
     ({
         type: "POST",
         url: "ajax_checkboxes.php",
         data: dataString,
         cache: false,
         success: function(html)
         {
            $("#userCheckBoxes").html(html);
         }
     });
   });
 });
 </script>

ajax_checkboxes.php を同じディレクトリに作成します。次に、以下のコードを ajax_checkboxes.php に入れます。データベース接続をすべて自分で行うことができると思います。

  $user_id = $_POST['user_id']; //selected user from list

  $query = "SELECT * from pages";
  $result = mysql_query($query);
  while($rowPage = mysql_fetch_assoc($result)) {

       $upid = $rowPage['user_id'];
       $pid = $rowPage['page_id'];
       $title = $rowPage['title'];

    if($upid == $user_id) {
        echo '<input type="checkbox" name="userPages[]" value="'.$pid.'"        checked="checked"> '.$title;   
     } else {
        echo '<input type="checkbox" name="userPages[]" value="'.$pid.'"> '.$title;
    }
 }

私は自分のローカルサーバーでそれを味わっていませんが、うまくいくと確信しています.

PS サイトのヘッド セクションに jQuery を含めないでください。

于 2012-10-06T04:24:23.240 に答える