Bonjour à tous,
Merci pour votre accueil sur ce forum.
Mon problème est le suivant :
Mon formulaire php n'affiche pas mes checkbox bootstrap. Je ne peux donc pas enregistrer de données ni savoir si elles seront retenues dans ma bdd.
Voici mon formulaire :
Voici mon traitement :
Les checkbox n'apparaissent pas. Je ne peux donc pas tester ce qui est envoyé en bdd.
Je vous remercie par avance pour votre bienveillance et votre aide.
Cordialement,
Cynthia
Merci pour votre accueil sur ce forum.
Mon problème est le suivant :
Mon formulaire php n'affiche pas mes checkbox bootstrap. Je ne peux donc pas enregistrer de données ni savoir si elles seront retenues dans ma bdd.
Voici mon formulaire :
<?php
include '../lib/includes.php';
/**
* La Sauvegarde
**/
if(isset($_POST['name']) && isset($_POST['slug'])){
checkCsrf();
$name = $db->quote($_POST['name']);
$tarif_id = $db->quote($_POST['tarif_id']);
/**
* SAUVEGARDE DE LA REALISATION
**/
if(isset($_GET['id'])){
$id = $db->quote($_GET['id']);
$db->query("UPDATE soirees SET name=$name, tarif_id=$tarif_id WHERE id=$id");
}else{
$db->query("INSERT INTO soirees SET name=$name, tarif_id=$tarif_id");
$_GET['id'] = $db->lastInsertId();
}
setFlash('La soirée a bien été ajoutée.');
}
/**
* On récupère une réalisation
**/
if(isset($_GET['id'])){
$id = $db->quote($_GET['id']);
$select = $db->query("SELECT * FROM soirees WHERE id=$id");
if($select->rowCount() == 0){
setFlash("Il n'y a pas de soirée avec cet ID", "danger");
header('Location:soiree.php');
die();
}
$_POST = $select->fetch();
}
/**
* On récupère la liste des tarifs
**/
$select = $db->query('SELECT id, name FROM tarifs');
$tarifs = $select->fetchAll();
$tarifs_list = array();
foreach($tarifs as $tarif){
$tarifs_list[$tarif['id']] = $tarif['name'];
}
include '../partials/admin_header.php';
?>
<h1>Editer une soirée</h1>
<div class="row">
<div class="col-sm-8">
<form action="#" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="name">Nom de la soirée :</label>
<?= input("name"); ?>
</div>
<div class="form-group">
<label for="tarif">Tarif :</label>
<div class="checkbox">
<label><?= checkbox("tarif_id", $tarifs_list); ?></label>
</div>
</div>
<?= csrfInput(); ?>
<button type="submit" class="btn btn-default">Enregistrer</button>
</form>
</div>
</div>
<?php $script = ob_get_clean(); ?>
<?php include '../partials/footer.php'; ?>
Voici mon traitement :
<?php
function input($id){
$value = isset($_POST[$id]) ? $_POST[$id] : '';
return "<input type='text' class='form-control' id='$id' name='$id' value='$value'>";
}
function checkbox($id, $options = array()){
$return = "<checkbox class='checkbox' id='$id' name='$id'>";
foreach($options as $k => $v){
$checkboxed = '';
if(isset($_POST[$id]) && $k == $_POST[$id]){
$checkboxed = 'checkboxed="checkboxed"';
}
$return .="<option value='$k' $checkboxed>$v</option>";
}
$return .='</checkbox>';
return $return;
}
Les checkbox n'apparaissent pas. Je ne peux donc pas tester ce qui est envoyé en bdd.
Je vous remercie par avance pour votre bienveillance et votre aide.
Cordialement,
Cynthia