复选框已检查数据保存到数据库

时间:2015-04-27 17:44:41

标签: php jquery html pdo

问题:当选中相应的 radnummer 的复选框时,将使用 输入 (见下文)。但没有任何反应。什么都没有更新。我想在选中复选框时保存输入中的值。 (令人困惑?)。 :)

问题:如何查看选中的复选框?

请随时使用我的代码或任何选择的示例。

foreach ($_POST['K'] as $radnummer => $value) {

    // Anything saved?                          
    $finns_det_iup = $iup->finns_det_radnummer_iup($_GET['amne_id'], $radnummer, $_GET['elev_id']); 

    // Send to IUP
    if (isset($_POST['IUP'][$radnummer])){

        $amne_id = $_POST['amne_id'];
        $eleven = $_GET['elev_id'];

        // INSERT
        if ($finns_det_iup == false){

        try{            
            $iup_nytt_klick  = $db->prepare("

            INSERT INTO `iup_kunskapskrav_klick` 
            (amne_id, radnummer, elev_id, lid, kunsk_klick, datum) 
            VALUES (:amne_id, :radnummer, :elev_id, :lid, :kunsk_klicket, :datum) 

            ");                     

            $iup_nytt_klick->bindParam(':amne_id', $amne_id, PDO::PARAM_INT);
            $iup_nytt_klick->bindParam(':radnummer', $radnummer, PDO::PARAM_INT);
            $iup_nytt_klick->bindParam(':elev_id', $eleven, PDO::PARAM_INT);                    
            $iup_nytt_klick->bindParam(':lid', $lid, PDO::PARAM_INT);                               
            $iup_nytt_klick->bindParam(':kunsk_klicket', $value[0], PDO::PARAM_STR);            
            $iup_nytt_klick->bindParam(':datum', $datum, PDO::PARAM_STR);                                               

            $iup_nytt_klick->execute();

        }catch(PDOException $e){
            die($e->getMessage());
        }       

        } else {

            // UPDATE
            $ny_lid = $_SESSION['lid'];     
            $eleven = $_GET['elev_id']; 
            $amne_id = $_POST['amne_id'];   

            try{            
                $iup_uppdatera_klick  = $db->prepare("
                UPDATE `iup_kunskapskrav_klick` 
                SET `kunsk_klick`=:kunsk_klicket,
                    `datum`=:datum, 
                    `lid`=:lid                                      
                WHERE `amne_id`=:amne_id AND `elev_id`=:elev_id AND `radnummer`=:radnummer ");                          

                $iup_uppdatera_klick->bindParam(':datum', $datum, PDO::PARAM_STR);
                $iup_uppdatera_klick->bindParam(':lid', $ny_lid, PDO::PARAM_INT);                   
                $iup_uppdatera_klick->bindParam(':kunsk_klicket', $value[0], PDO::PARAM_STR);       
                $iup_uppdatera_klick->bindParam(':amne_id', $amnet, PDO::PARAM_STR);    
                $iup_uppdatera_klick->bindParam(':elev_id', $eleven, PDO::PARAM_INT);
                $iup_uppdatera_klick->bindParam(':radnummer', $radnummer, PDO::PARAM_INT);                                          

                $iup_uppdatera_klick->execute();

            }catch(PDOException $e){
                die($e->getMessage());
            }   

        }

    } // END 1
} // END 2

复选框

<td class="info" rowspan="5">                                          
   <input type="checkbox" name="IUP[<?php echo $kk['radnummer'];?>]" value="<?php echo $kk['radnummer'];?>"><i></i>
</td>

输入

<th>                 
    <input class="abb_table_center" type="radio" value ="<?php echo $kk['kunskapstyp']; ?>" name="K[<?php echo $kk['radnummer'];?>][]" <?php if ($kk['kunskapstyp'] == $hamta_klicken['abb_klicket']) echo 'checked="checked" '; ?>><i class="rounded-x"></i>                                            
</th>

2 个答案:

答案 0 :(得分:1)

与Ted提到的一样,您可以使用此选择器'input [type =“checkbox”]:checked'来获取所有选中的复选框。我还会将数据附加到包含radnummer字段的复选框,以便您可以找到与复选框相关的输入。这是一个例子:

<input type="checkbox" name="IUP[<?php echo $kk['radnummer'];?>]" data-radnummer="<?php echo $kk['radnummer'];?>" value="<?php echo $kk['radnummer'];?>"><i></i>

将数据附加到复选框后,您可以循环显示可用的复选框,并根据radnummer从输入中获取数据

$.each($('input[type="checkbox"]:checked'), function (i, key) {
    var radnummer = $(key).data('radnummer');
    //find input based on radnummer retrieved
    textboxValue = $('#K[' + radnummer + '][]').val()
});

答案 1 :(得分:-1)

实际上,复选框的POST是&#34; on&#34;你需要验证是否&#34; on&#34;或者,如果您需要该值,则需要使用javascript AJAX。