Traiter un formulaire - JQuery Mobile
Résolu
roms75001
Messages postés
395
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 30427 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30427 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai créé une petite appli en jquery mobile mais j'ai un soucis pour faire le lien entre mon formulaire et ma base de données
Voici mon formulaire :
Voici mon fichier valid_form.php :
Quand je clique sur "Envoyer", ça me retourne sur la page valid_form.php (qui est une page blanche) mais ça n'enregistre pas les données du formulaire dans ma base de données
Savez-vous d'ou vient le problème ??
J'ai créé une petite appli en jquery mobile mais j'ai un soucis pour faire le lien entre mon formulaire et ma base de données
Voici mon formulaire :
<form method="post" action="valid_form.php">
<label for="select-choice-a" class="select">Sexe :</label>
<select name="sexe" id="select-choice-a" data-native-menu="false">
<option value="homme">Homme</option>
<option value="femme">Femme</option>
</select><br />
<label for="date">Date de naissance :</label>
<input type="date" name="date" id="date" value=""><br />
<label for="slider-fill">Trouvez vous cette application utile ? (notez sur 20)</label>
<input type="range" name="utile" id="slider-fill" value="0" min="0" max="20" step="1" data-highlight="true">
<label for="slider-fill">Avez vous appris des choses grâce à ce site ? (notez sur 20)</label>
<input type="range" name="appris" id="slider-fill" value="0" min="0" max="20" step="1" data-highlight="true">
<label for="slider-fill">Notez l'apparence du site (sur 20)</label>
<input type="range" name="apparence" id="slider-fill" value="0" min="0" max="20" step="1" data-highlight="true">
<label for="textarea">Donnez votre avis</label>
<textarea cols="40" rows="8" name="avis" id="textarea"></textarea>
<input type="submit" value="Envoyer">
</form>
Voici mon fichier valid_form.php :
<?php
include('connect.php');
if (isset($_POST['sexe']) && isset($_POST['date']) && isset($_POST['utile']) && isset($_POST['appris'])
&& isset($_POST['apparence']))
{
$sql_avis =
"INSERT INTO avis
(sexe, date_naissance, note_utile, note_appris, note_apparence, avis)
VALUES (:sexe, :date_naissance, :note_utile, :note_appris, :note_apparence, :avis)";
$result = $db->prepare($sql_avis);
$result->bindValue('sexe', $_POST['sexe'], PDO::PARAM_INT);
$result->bindValue('note_utile', $_POST['note_utile'], PDO::PARAM_INT);
$result->bindValue('note_appris', $_POST['note_appris'], PDO::PARAM_INT);
$result->bindValue('note_apparence', $_POST['note_apparence'], PDO::PARAM_INT);
$result->bindValue('avis', $_POST['avis'], PDO::PARAM_STR);
$result->execute();
}
?>
Quand je clique sur "Envoyer", ça me retourne sur la page valid_form.php (qui est une page blanche) mais ça n'enregistre pas les données du formulaire dans ma base de données
Savez-vous d'ou vient le problème ??
1 réponse
-
Bonjour,
Un bloc TRY / CATCH dans ton code t'aurais permis de voir une éventuelle erreur dans ta requête...
en l'occurence.. si je ne m'abuse ... tu essayes d'insérer dans 6 champs ... mais tu ne lui envoies (dans tes BIND.. ) que 5 variables
Aurais tu oublié la variable date_naissance ??? Oo ;-)
Cordialement,
Jordane-
Le code corrigé et remis au propre :
<?php //pour l'affichage des erreurs php error_reporting(E_ALL); //connexion à la BDD require_once('connect.php'); //récupération "propre" des variables $sexe = isset($_POST['sexe']) ? $_POST['sexe'] : NULL; $date = isset($_POST['date']) ? $_POST['date'] : NULL; $utile = isset($_POST['utile']) ? $_POST['utile'] : NULL; $appris = isset($_POST['appris']) ? $_POST['appris'] : NULL; $apparence = isset($_POST['apparence']) ? $_POST['apparence'] : NULL; if ($sexe && $date && $utile && $appris && $apparence) { try{ $sql_avis = "INSERT INTO avis (sexe, date_naissance, note_utile, note_appris, note_apparence, avis) VALUES (:sexe, :date_naissance, :note_utile, :note_appris, :note_apparence, :avis)"; $result = $db->prepare($sql_avis); $result->bindValue('sexe', $sexe, PDO::PARAM_INT); $result->bindValue('note_utile',$utile, PDO::PARAM_INT); $result->bindValue('note_appris', $appris, PDO::PARAM_INT); $result->bindValue('note_apparence', $apparence, PDO::PARAM_INT); $result->bindValue('avis', $avis, PDO::PARAM_STR); $result->bindValue('date_naissance', $date, PDO::PARAM_STR); $result->execute(); } catch (Exception $e){ //en cas d'erreur echo 'Erreur : ' . $e->getMessage(); } } -
-
-
Ta question initiale est "résolue" ... il serait donc bien de mettre le sujet en "RESOLU" ... puis, en cas de nouvelle question .... d'ouvrir une nouvelle discussion.
Quoi qu'il en soit ... comment veux tu qu'on te réponde avec si peu d'informations.... ?????
j'ai rajouté a la fin du ligne la ligne suivante
[]...
Mais ce message ne s'affiche jamais, cela viendrait pas du faite que j'utilise du jquery ??
Heu...sans voir le code dans son entièreté ... IMPOSSIBLE de savoir ! -
-