繁体   English   中英

发布已检查的复选框值,使用jquery动态生成到php

[英]Post checked checkbox values that ate generated dynamically to php using jquery

我有一个从MySQL表值动态生成的表。 每个列出的记录都有一个复选框

list.php的

$query="SELECT * FROM drivers ORDER BY name";
$query=$mysqli->query($query);
$queryN=mysqli_num_rows($query);
if($queryN!=0){
   while($row=mysqli_fetch_assoc($query)){
       $id=$row['id'];
       $name=$row['name'];

       $output .='<tr id="'.$id.'">
                  <td>'.$name.'</td>
                  <td><input type="checkbox" name="assign" class="assigned" value='.$id.'"/></td>
                  </tr>';
  }
}else{
       $output .='<tr>
                  <td colspan="2">No data found</td>
                  </tr>';
}

HTML文件

<input type="button" name="send" id="send" value="Send" />

现在,JQuery脚本将仅发送表中已选中复选框的值:

<script>

$(document).ready(function(){
    $('.send').click(function(){

        var checkValues = $('input[name=assign]:checked').map(function()
        {
            return $(this).val();
        }).get();

        $.ajax({
            url: 'assigndriver.php',
            type: 'post',
            data: { ids: checkValues },
            success:function(data){

            }
        });
    });
});

</script>

最后,PHP文件assigndriver.php将插入数组,其值仅为已选中的复选框:

   include "../connect_to_mysql.php";

   $id = array();

   if(isset($_POST['ids'])){

    $id  = $_POST['ids'];
        for ($i = 0; $i < count($id); $i++) {
             $id_new = $id[$i];
             $sql="INSERT INTO teste (campo) VALUES ('$id_new')";    
        }     
    }

好吧,我想知道为什么它不起作用,如果以这种方式复选框的正确值,那必须是变量$ id正确地发布到PHP文件。

谢谢

尝试改变:

$('.send').click(

至:

$('#send').click(

因为您将id="send"而不是class="send"分配给输入按钮

您应该将复选框的名称更改为name =“something []”。 所以它会知道它是一个数组,值将正确发布。 希望这对你有所帮助。

在jquery中,您使用id send调用发送按钮,但在调用您使用的函数时 操作员对操作员进行了操作。

区别

  the difference between "." operator and "#" operator is when you calling a 
  class you should use "."  operator.

  Example:
          HTML:
               <input type="button" name="send" class="send" value="Send" />  

         JQUERY:
                $('.send').click(function(){

                     //insert your code here..
                });


  but if you are going to call an id of a html element than use "#" operetor  

  Example: 
          HTML:
               <input type="button" name="send" id="send" value="Send" 
                onclick="send_data();" />



         JQUERY:
                 function send_data(){
                 $('#send').click(function(){

                     //insert your code here..
                });}

希望它能帮到你......

将每个选中复选框的值的正确方法发布到PHP文件的正确方法是执行以下脚本:

$(document).ready(function(){
    $('#btnadd').click(function(){

        var checkValues = $('input[name="assign[]"]:checked').map(function()
        {
            return $(this).val();
        }).get();

        $.ajax({
            url: 'assigndriver.php',
            type: 'post',
            data: { ids: checkValues },
            success:function(data){

            }
        });
    });
});

另外,我们需要更改PHP文件中的动态输出:

$output .='<td align="center"><input type="checkbox" name="assign[]" id="add_driver'.$id.'" value="'.$id.'"/></td>';

如果选中该复选框,则将正确发布值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM