Formulaire checkbox + input text
Posté : 18 févr. 2015, 13:33
Bonjour, je suis confronté à plusieurs problèmes que je n'arrive pas à résoudre...
Je suis entrain de faire un formulaire contenant des examens qui existent dans une table examens.
Pour chaque examen une checkbox et si la checkbox est coché en jQuery j'affiche un champ texte.
Dans les faits voici mon script jQuery :
[javascript]
$(document).ready(function() {
var $examens = $('input[name="examens[]"]');
var $comments = $('input[name="comments[]"]');
$comments.hide(0);
$examens.each(function (i) {
$(this).on('change', function () {
if ($(this).is(':checked')) {
$comments.eq(i).show(0);
} else {
$comments.eq(i).hide(0);
}
});
});
});
[/javascript]
Voici mon script php :
Comment faire pour dire, je veux que ':exam1'=>$examen1,':document1'=>$document1 et ainsi de suite...
Parallèlement quand je soumet mon formulaire sans rien cocher, j'ai bien mon message "Il faut sélectionner" au moins un examen mais j'ai également une erreur PHP : Notice: Undefined index : examens in...
[Edit] J'ai corrigé l'erreur ci-dessus en faisant :
Merci de votre aide
Je suis entrain de faire un formulaire contenant des examens qui existent dans une table examens.
Pour chaque examen une checkbox et si la checkbox est coché en jQuery j'affiche un champ texte.
Dans les faits voici mon script jQuery :
[javascript]
$(document).ready(function() {
var $examens = $('input[name="examens[]"]');
var $comments = $('input[name="comments[]"]');
$comments.hide(0);
$examens.each(function (i) {
$(this).on('change', function () {
if ($(this).is(':checked')) {
$comments.eq(i).show(0);
} else {
$comments.eq(i).hide(0);
}
});
});
});
[/javascript]
Voici mon script php :
<?php
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") {
$errors = array();
$examens = array();
$comments = array();
$examens = $_POST['examens'];
$comments = $_POST['comments'];
if(empty($examens)) {
$errors[] = 'Il faut sélectionner au moins un examen.';
}
for ($i = 0; $i < count($examens); $i++) {
$examen = $examens[$i];
$comment = $comments[$i];
var_dump($examen,$comment);
}
if(!empty($errors)) {
echo '<div class="alert error">
<ul>';
foreach($errors as $error) {
echo '<li>',$error,'</li>';
}
echo '</ul>
</div>';
} else {
}
}
?>
Et voici mon html :
<form action="#" method="post" id="adddoc" class="add_form">
<div class="form">
<div class="control-group form-group" id="intitule-group">
<?php
$query = $connexion->prepare("SELECT * FROM examens WHERE ex_actif = 1 ORDER BY ex_ordre DESC");
$query->execute();
$rows = $query->fetchAll();
foreach($rows as $row) {
echo '<div class="form-radio"><input type="checkbox" name="examens[]" value="'. $row['ex_id'].'"> '. utf8e($row['ex_nom']) .'</div>
<div class="form-item"><input type="text" name="comments[]"></div>';
}
?>
</div>
</div>
<div class="row-fluid">
<p class="span8"><input type="submit" class="btn btn-bsv span5" value="Ajouter"></p>
</div>
</form>
Je suis bloqué pour ma requête SQL d'insertion de données.Comment faire pour dire, je veux que ':exam1'=>$examen1,':document1'=>$document1 et ainsi de suite...
Parallèlement quand je soumet mon formulaire sans rien cocher, j'ai bien mon message "Il faut sélectionner" au moins un examen mais j'ai également une erreur PHP : Notice: Undefined index : examens in...
[Edit] J'ai corrigé l'erreur ci-dessus en faisant :
if(empty($_POST['examens'])) {
$errors[] = 'Il faut sélectionner au moins un examen.';
} else {
$examens = $_POST['examens'];
}
Une idée s'il vous plait ?Merci de votre aide