Inserimento dati checkbox multipli in db da ajax a php

  • Creatore Discussione Creatore Discussione migo80
  • Data di inizio Data di inizio

migo80

Utente Attivo
25 Apr 2013
243
3
18
Buonasera a tutti, ho bisogno di un vostro e urgente aiuto.
Spiego il mio problema ho dei checkbox multipli da cui dovrei passare tramite ajax degli id a una pagina php per l'inserimento su db i sopracitati id e per ognuno in un record a se come posso fare?
posto il mio codice
questo genera le checkbox

PHP:
<?php           
$result = $mysqli->query("SELECT * FROM piani_alimentari ORDER BY ricette_id ASC LIMIT 23");
           $mysqli->set_charset("utf8");

while($row= $result->fetch_assoc()){
?>
        <div class="form-group">
           <label class="control-label lbl col-sm-10"><?php echo $row['ricetta'].":"; ?></label>
            <div class="col-sm-2">
                <input type="checkbox" class="form-control" name="piano[]" value="<?php echo $row['ricette_id']; ?>">
            </div>
        </div>

<?php
}
?>

questo è lo script ajax per il passaggio dei dati:
HTML:
<script>
    $(document).ready(function() {
        $("#salva_piani").click(function(){
        var dati = $("#piani_alimenti").serialize(); //recupera tutti i valori del form automaticamente
            $.ajax({
            type: "post",
            url: "operation/insert.php",
            data: dati,
            dataType: "html",
            success: function(msg)
            {
            alert('Dati Salvati');
            

            },
            error: function()
            {
            alert("errore");
            }
        });
    });
    });
</script>

questo è lo script per il salvataggio ma indipendentemente da quanti check sono flaggati inserisce solo un record!

PHP:
$checkbox = $_POST['piano'];
 
    $lst_id = $_SESSION['id_cliente'];

    foreach($checkbox as $chk1)
    {
    
    $query = "INSERT INTO piani_alimentari_assegnati (piano_id, id_cliente) VALUES ('$chk1','$lst_id')";

    }     
    
 
                $mysqli->query($query);
}
 
Auto risolto posto soluzione:

PHP:
$checkbox = $_POST['piano'];  
    $lst_id = $_SESSION['id_cliente'];
  for ($i=0; $i<count($checkbox); $i++) {
      $query = "INSERT INTO piani_alimentari_assegnati (piano_id, id_cliente) VALUES ('".$checkbox[$i]."','$lst_id')";
      $mysqli->query($query);

Sostituito il foreach con il ciclo for!
 

Discussioni simili