Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery将动态生成的选中复选框值发布到php_Php_Jquery_Html_Mysqli - Fatal编程技术网

使用jquery将动态生成的选中复选框值发布到php

使用jquery将动态生成的选中复选框值发布到php,php,jquery,html,mysqli,Php,Jquery,Html,Mysqli,我有一个从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

我有一个从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(
致:


由于您将id=send not class=send分配给您的输入按钮,您应该将复选框的名称更改为name=something[]。因此,它将知道它是一个数组,并且将正确地发布值。希望这对您有所帮助。

在jquery中,您可以使用id send调用send按钮,但同时调用您使用的函数。操作员代替操作员

差别


希望它能帮助你

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

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

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

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

对不起,伙计们!仍然不起作用。没有向数据库插入任何值。甚至用id=send和$send替换该类。单击。。。这些值仍然无法发布并插入到数据库中。确定将LIST.PHP代码while$row=mysqli\u fetch\u assoc$query更改为while$row=mysqli\u fetch\u array$query…希望它能工作。如果它的工作投票通过post…hav funDid,你会得到结果吗?在assigndriver.PHP代码中调用mysql\u query$sql;它肯定会有用的谢谢!我做了更改,但仍然没有发布值!
  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..
                });}
$(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){

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