IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

probleme pour updater selon condition php [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Par défaut probleme pour updater selon condition php
    Bonjour,

    j'ai un problème pour updater une table quant je choisie de faire apparaitre ou non un champ du formulaire selon une condition

    quant la condition est vérifié ça affiche un champ avec une valeur enregistré dans la table , si je remplis et modifie les infos ça update bien les données

    dans l'autre condition je n'affiche pas ce champ dans le formulaire , je remplis ce formulaire mais là il n' update pas la table

    la page ou est le formulaire ( l'insertion dans la table se fait via un script javascript )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    // le traitement pour afficher les données deja inscrite dans la table dans le form
     
    try {
            //prepare query
            $query = 'SELECT * FROM table
     
            $stmt = $connection->prepare( $query );
     
            $stmt->bindParam(1, $_REQUEST['id']);
     
               $stmt->execute();
     
            $row = $stmt->fetch(PDO::FETCH_ASSOC);
     
     
            //valeurs remplissant les champs
     
    		$toto = $row['toto'];
    		$titi = $row['titi'];
     
     
        }catch(PDOException $exception){ //to handle error
            echo "Error: " . $exception->getMessage();
        }
     
     
    // le formulaire 
     
     
    <label>
           <input name="toto" type="checkbox" id"toto" value="0"   <?php   if($toto == "0") { echo "checked"; } ?>  >
    	       choix 1</label>
    	      <br>
    	      <label>
    	        <input type="checkbox" name="toto" id"toto" value="1"   <?php  if($toto == "1") { echo "checked"; } ?>   >
    	       choix 2</label>
     
     
    // la condition pour afficher ou non le champs selon une valeur dans la table
     
    if( $toto == "1" )
      echo ' <label>choix 2 </label><textarea  name="titi" id="titi" >'.html_entity_decode($titi).'</textarea>';
    else
      echo 'Vous avez choisie l'option 1  <br>';
     
    // le traitement javascript  qui recupere les données du formulaire et les envoie dans le fichier de traitement pour l'insertion
     
    var toto,titi ;
     
     
    	   toto =document.getElementById('toto').value;alert(toto);
            titi =document.getElementById('titi').value;alert(titi);
     
    	  /* Appel AJAX pour insertion en BDD */ 
        var sendAjax = $.ajax({
         type: "POST",
         url: 'insertionbdd.php',
          data: 'toto='+toto+'&titi='+titi,success: handleResponse
    	     });
       }
       function handleResponse(){
        $('#answer').get(0).innerHTML = sendAjax.responseText;
       }
      });
     }
    la page qui insère les données dans la table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     $toto = ($_POST['toto']);
       $titi = htmlentities(addslashes($_POST['titi']));
     
      $insert = $connection->prepare("UPDATE table SET  toto=:toto,titi=:titi   where id_membre = '".$id_membresession."' ");
    try {
     
      $insert->bindParam(':toto', $toto, PDO::PARAM_INT);
      $insert->bindParam(':titi', $titi, PDO::PARAM_STR, 200);
     
      // On exécute
     $success=  $insert->execute();
     
      if( $success ) {
        echo "Enregistrement réussi";
      } 
    } catch( Exception $e ){
      echo 'Erreur de requète : ', $e->getMessage();
    }}
    merci pour votre aide

  2. #2
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    ton alert(titi) dans ta condition 2 , il donne quoi ?
    il est possible que cela vienne de la, ta fonction attend 2 paramètres et tu n'en fournis qu'un.

    essaye avec un champ masqué ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Par défaut
    mercy camyo



    en fait pour simplifier l'exposé de mon problème j'ai écrit que j'avais fait comme ça pour le champ concernant les deux checkbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     toto =document.getElementById('toto').value;alert(toto);
    mais en fait j'ai fait ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    toto= document.getElementsByName("toto");
    for (i=0; i<toto.length; i++)
    	if (toto[i].checked)
    		 toto= toto[i].value;alert(toto);
    il y'a donc bien un traitement pour recevoir l'une ou l'autre des valeurs des checkbox


    quant la condition fait que ça affiche le champ "titi" , ça fonctionne bien quant je fait des modifs , il update bien la table

    à noter que dans ce cas de figure quant j'affiche le champ titi et que je ne remplis rien dans ce champ , il update bien la table , mon alert sur "titi" n'affiche rien bien sur mais je vois qu'il envoie ce rien

    quant ce champ ( "titi" ) n'est pas affiché parce que la valeur de "toto" est à 1 , et que je remplis les autres champs ça n' update pas la table , l'alert sur titi ne se fait pas

  4. #4
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    Je suis pas certain d'avoir compris ton explication

    pour moi, le problème peut venir de là :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if( $toto == "1" )
      echo ' <label>choix 2 </label><textarea  name="titi" id="titi" >'.html_entity_decode($titi).'</textarea>';
    else
      echo 'Vous avez choisie l'option 1  <br>';

    si $toto ==1
    titi existe , donc la valeur peut être transmise, même vide

    mais si toto != 1
    titi n'existe pas

    ma proposition était
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if( $toto == "1" )
      echo ' <label>choix 2 </label><textarea  name="titi" id="titi" >'.html_entity_decode($titi).'</textarea>';
    else
      echo 'Vous avez choisie l'option 1  <br>.<input id="titi" name="titi" type="hidden" value="">';

    comme ça, titi existerai dans les 2 cas

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Par défaut
    merci camyo , tu m'a donné la solution

    il attendait bien une valeur pour "titi" et le fait de mettre un hidden ça règle le problème

    bravo à toi d'avoir compris malgré mes ténébreuses explications

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme pour vider un array php
    Par Xeuch dans le forum Langage
    Réponses: 2
    Dernier message: 11/03/2013, 13h28
  2. [MySQL] probleme pour récupérer les données php/sql
    Par xavioche77 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/01/2011, 16h44
  3. [Tableaux] Probleme pour rafraichir une page php
    Par bodysplash007 dans le forum Langage
    Réponses: 1
    Dernier message: 21/03/2007, 11h31
  4. Réponses: 2
    Dernier message: 07/07/2006, 21h11
  5. Problèmes pour php sous linux (permissions)
    Par popov2 dans le forum Administration système
    Réponses: 4
    Dernier message: 20/02/2006, 14h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo