Traiter un formulaire - JQuery Mobile

Résolu
roms75001 Messages postés 395 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 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 :

    <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 ??
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 395 Date d'inscription   Statut Membre Dernière intervention   7 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 395 Date d'inscription   Statut Membre Dernière intervention   7 > roms75001 Messages postés 395 Date d'inscription   Statut Membre Dernière intervention  
 
personne ne sait me répondre ??
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > roms75001 Messages postés 395 Date d'inscription   Statut Membre Dernière intervention  
 
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 395 Date d'inscription   Statut Membre Dernière intervention   7 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
D'accord j'ouvre une nouvelle discussion
0