当复选框名称来自php中的数据库时,如何访问多个复选框名称

Posted

技术标签:

【中文标题】当复选框名称来自php中的数据库时,如何访问多个复选框名称【英文标题】:how to access multiple checkboxes names while checkbox name is coming from database in php 【发布时间】:2016-02-29 22:29:13 【问题描述】:

下面的代码显示了来自数据库的一些数据,在每一行中都有一个复选框,其名称为数据库中的 primaryid ..当用户单击少于 5 个复选框时,会出现警报,显示所有代码都在工作。但是

在这里,我希望当用户单击 5 个复选框时,我希望选择 5 个复选框的唯一名称,然后单击提交按钮,并且我想使用这 5 个唯一 ID 执行一些 php 代码。

$sql="some sql";
$result = mysqli_query($mysql,$sql);

while($res1=mysqli_fetch_array($result,MYSQLI_ASSOC)) 


                    ?>
                                <tr>

                                <td>

                                <input type="checkbox" name="studentid"  value="<?php echo $res1['leadID']?>" ></td>


                <td>some stuff here </td>
                              </tr>
                    <?php 
                                ?>     

<input type="submit" name="submit" value="Submit" class="btn newcol1" id="submit2"  onClick="checkboxes();">


                 <script>
     function checkboxes()
      

       var inputElems = document.getElementsByTagName("input"),
        count = 0;

        for (var i=0; i<inputElems.length; i++)        
           if (inputElems[i].type == "checkbox" && inputElems[i].checked == true)
              count++;

           

        
        if(count < 5)
                  alert ("Select at least 5 leads");
                  




   </script>

【问题讨论】:

请构建你的代码,它无处不在 【参考方案1】:

不确定这是否正是您想要的,但在这里我已经做到了,所以 checkboxes() 函数将所有唯一 ID 添加到一个数组中,然后如果单击了 5 个以上的复选框,则将它们发布到当前页面并且您可以访问 PHP 中的 ID。

function checkboxes()
    var inputElems = document.getElementsByTagName("input"),
    count = 0;

    var ids = []
    for (var i=0; i<inputElems.length; i++)        
        if (inputElems[i].type == "checkbox" && inputElems[i].checked == true)
            ids.push(inputElems[i].getAttribute("value"));
            count++;
        
    

    if(count < 5)
        alert ("Select at least 5 leads");
    
    else
        //more than 5 checkboxes selected
        post(window.location.href, ids: ids);
    


function post(path, params, method) 
    method = method || "post"; // Set method to post by default if not specified.

    // The rest of this code assumes you are not using a library.
    // It can be made less wordy if you use one.
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);

    for(var key in params) 
        if(params.hasOwnProperty(key)) 
            var hiddenField = document.createElement("input");
            hiddenField.setAttribute("type", "hidden");
            hiddenField.setAttribute("name", key);
            hiddenField.setAttribute("value", params[key]);

            form.appendChild(hiddenField);
         
    

    document.body.appendChild(form);
    form.submit();

【讨论】:

以上是关于当复选框名称来自php中的数据库时,如何访问多个复选框名称的主要内容,如果未能解决你的问题,请参考以下文章

如何根据swift 3中的数组选择复选标记?

单击复选标记,访问,VBA代码时将值解析为变量

使用 php 获取多个复选框名称/ID

表视图复选标记

将复选标记图像添加到多个按钮数组

使用 SearchBar 时,复选标记与 TableView 中的错误行相关联