2012-10-05 41 views
1

我不是在这里发布完整的代码,但我想知道如何基于下拉列表检索checboxes中的数据。我有一个用户下拉列表,以及复选框中的页面数据。如何从Ajax/Jquery的下拉列表中获取复选框中的数据

假设表user有两列(user_iduser)和pages有三列(page_iduser_idtitle)。

我希望这些cheboxes根据选定的用户自动检查/取消选中,而无需刷新页面。假如我是获取用户的

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_idIF 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; 
    } 
} 

怎么可能在阿贾克斯/ Jquery我的意思是没有刷新页面。 希望你明白我的意思。 感谢

+0

只需用您从ajax调用中检索到的'select'元素替换它并完成它呢? – dbf

+0

感谢您的回复,但主要的是我需要的是ajax代码,我没有ajax的知识:( – Bheem

+0

err ..然后开始阅读关于ajax的做法?最快和最简单的方法是使用像[jQuery] (http://www.jquery.com)的使用许多[ajax](http://api.jquery.com/category/ajax/)方法之一 – dbf

回答

1

这里是asnwer你可以做的是这样的

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。

+0

非常感谢:) – Bheem

+0

不客气: ) –

相关问题