【问题标题】:Getting values from php dynamically created checkboxes with jquery使用jquery从php动态创建的复选框中获取值
【发布时间】:2015-05-07 03:32:36
【问题描述】:

这不是建议为重复的问题的重复,因为此问题与事件绑定无关

嗨,我试图获取复选框的值以将 ajax 请求发送到 php 页面,复选框是使用 php 动态创建的。到目前为止,我的代码允许我向用户显示一条指令,告诉用户选择要从动态创建的列表中删除的管理员。然后,当一个复选框被选中时,指令隐藏并显示删除管理按钮。接下来点击删除按钮,我试图确认用户想要删除选择的管理员,然后点击确认或取消。我遇到的真正问题是让选中的复选框的值传递给 php 处理页面,到目前为止,无论选中哪个复选框,我都设法让第一个复选框的值通过

jQuery

<script type="text/javascript">

$(document).ready(function() {

    var checkboxes = $("input[type='checkbox']");

checkboxes.click(function() {
    $('.delete_admin_but').show();
    $('#adminDeleteNotice').hide();
    var deleteAdminName=$(this).attr('id');
});

    $(".delete_admin_but").click(function() {



//  if(confirm("Are you sure you want to delete the Admin")) {

    $("#deleteAdminError").html('<img src="image/ajax-loader.gif" width="16" height="16" alt=""/>');




$.post("includes/delete_admin.inc.php",{deleteAdminname:deleteAdminName},function(json)   {
    if(json.result === "success") {
        $("#deleteAdminError").html(json.message);
//  $('.add_intern').get(0).reset();
    }else{
        $("#deleteAdminError").html(json.message);
    }
});



});//submit click
});//doc ready
</script>

html 表单

<div id="deleteAdmin" style="display:none">

<form id="adminDelete">

          <div class="delete_admin_list">

            <?php while($row = mysqli_fetch_array($result1)) { ?>

              <input type="checkbox" id="<?php echo $row['name']; ?>" value="<?php echo $row['id']; ?>" name="delete[]" class="checkboxAdmin" />

              <div id="admin_db_detail"><?php echo $row['name']; ?> - <?php echo $row['email']; ?></div>

              <?php } ?>

      </div>        


<div id="adminDeleteNotice" style="display:block">Please Choose an Admin to Delete</div>

<input name="delete_admin_but" id="delete_admin_but" type="button" class="delete_admin_but" value="Delete Admin" style="display:none"/>

</form>

<div id="deleteAdminError"></div>

</div>

如果有人能帮我解决这个问题,我会很感激的

【问题讨论】:

  • 一目了然,您将“deleteAdminName”设置为 var,因此它是一个局部变量。点击处理程序完成后,它不再存在。
  • @DelightedDD 这是怎么重复的?我没有绑定事件,也没有使用选择列表?
  • @Taplar,我确实将 var deleteAdminName 放在删除按钮单击函数中,但它只返回列表的第一个复选框值而不是选中的复选框的值,但是我接受你的观点作为有效,虽然不能帮助我解决问题。感谢您的意见
  • 我不完全确定你明白我所说的。在您的 checkboxes.click 中,您将“deleteAdminName”设置为一个值。无论您将其设置为什么,都使用“var deleteAdminName = 'something'”进行设置。该变量前面的 var 使其成为该函数的本地变量。一旦函数完成,该变量将不再存在。然后,当您执行单击“.delete_admin_but”时,您的帖子引用了“{deleteAdminname:deleteAdminName}”,但如前所述,该变量不再存在,因此您传递给您的 ajax 调用 deleteAdminname:未定义。

标签: javascript php jquery html checkbox


【解决方案1】:

我现在已经想通了,所以发帖是为了说明如何并指出这与建议的重复问题无关。也许那些建议这些重复的人应该先正确阅读问题,然后他们建议的问题被重复,以真正查看是否有任何相关性,但是以防万一我错了,我很乐意撤回此评论应该有人向我展示了建议的问题与我发布的问题的相关性并提供了解决方案。

我的解决方案

jquery改成如下

<script type="text/javascript">

$(document).ready(function() {

    var checkboxes = $("input[type='checkbox']");

checkboxes.click(function() {
    $('.delete_admin_but').show();
    $('#adminDeleteNotice').hide();

});

    $(".delete_admin_but").click(function() {

$.post("includes/delete_admin.inc.php",{ checked_box : $('input:checkbox:checked').val()},function(json)   {
    if(json.result === "success") {
        $("#deleteAdminError").html(json.message);
//  $('.add_intern').get(0).reset();
    }else{
        $("#deleteAdminError").html(json.message);
    }
});
        });//submit click
});//doc ready
</script>

我对原始脚本所做的更改是 $.post 行

原始代码

$.post("includes/delete_admin.inc.php",{deleteAdminname:deleteAdminName},function(json)   {

从选中的复选框中获取复选框值的新代码

$.post("includes/delete_admin.inc.php",{ checked_box : $('input:checkbox:checked').val()},function(json)   {

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 2017-05-07
    相关资源
    最近更新 更多