Traiter un formulaire - JQuery Mobile

Résolu/Fermé
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 - 10 févr. 2016 à 18:27
jordane45 Messages postés 38195 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 mai 2024 - 15 févr. 2016 à 10:28
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 :

    <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

jordane45 Messages postés 38195 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 mai 2024 4 675
Modifié par jordane45 le 10/02/2016 à 19:07
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                                                                 
0
jordane45 Messages postés 38195 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 mai 2024 4 675
Modifié par jordane45 le 10/02/2016 à 19:14
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();
   }
}


0
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 7 > jordane45 Messages postés 38195 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 mai 2024
10 févr. 2016 à 21:09
Bonsoir,

Merci bien, ca marche nickel !

en revanche j'ai rajouté a la fin du ligne la ligne suivante:

echo 'Merci de remplir tout les champs svp';


Mais ce message ne s'affiche jamais, cela viendrait pas du faite que j'utilise du jquery ??
0
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 7 > roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017
15 févr. 2016 à 10:06
personne ne sait me répondre ??
0
jordane45 Messages postés 38195 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 mai 2024 4 675 > roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017
15 févr. 2016 à 10:25
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 !
0
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 7 > jordane45 Messages postés 38195 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 mai 2024
Modifié par roms95200 le 15/02/2016 à 10:27
D'accord j'ouvre une nouvelle discussion
0