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 :

modifier les info d'un élément en recupérant son ID


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 63
    Par défaut modifier les info d'un élément en recupérant son ID
    Bonjour,

    Je travaille avec php/MSQL pour écrire un code permettant de modifier les info d'un clubFan. après un débogage, j'ai remarqué que le problème c'est que mon code ne se souvient pas de la valeur de la variable idFan transférée dans mes pages et me génère une erreur mySql:

    "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 select prenom,cin from fans where idFan=".
    dans ma page "afficher.php", je selectione tout les lignes de la table "fans" de ma BD. pour chaque ligne du tableau, j'ai mis un lien "modifier" sous forme de formulaire avec des champs hidden dont le paramettre "value=idFan". voici le code:

    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
    <?php
    $lines=afficher_club_fans();
    if(!empty($lines)) {		
    			 // début du tableau
        echo '<table border=\"1\">'."\n";
            // première ligne on affiche les titres prénom et cin dans 2 colonnes
            echo '<thead>';
    		echo '<tr>';
    		echo '<th ><b><u>Prénom</u></b></th>';
            echo '<th ><b><u>CIN</u></b></th>';
    		echo '</tr>'."\n";
    		echo '</thead>';
    		echo '<tbody>';
     
    		//affichage des resultats
     
    	for($i=0;$i<count($lines);$i++){
    		$formName = "form".$lines[$i]['idFan'];
    		echo '<td >'.$lines[$i]['prenom'].'</td>';
    		echo '<td >'.$lines[$i]['cin'].'</td>';
    		echo '<td ><form name="'. $formName.'" action="update.php" method="post">
    			<input type="hidden" name="command" value=""/>
    			<input type="hidden" name="numeroFan" value="'.$lines[$i]['idFan'].'" />
    			<a href="#" title ="Modifier ce fan" onClick="envoyer(\''.$formName.'\', \'update\')">modifier</a>
    			</form></td>';
     
    		echo '</tr>'."\n";
    		}
    		echo '</tbody>';
    		echo '</table>'."\n";
     
    	}	
    else echo 'Pas d\'enregistrements dans cette table...';
     
    ?>
    dans la même page, j'ai la fonctions "envoyer()" pour envoyer le formulaire vers la page "update.php":
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script type="text/javascript" >	
    	function envoyer($url){
    	document.forms[$url].submit();
     
    }
    </script>

    je recupère le idFan dans ma page "update.php" ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $idFan=$_POST['numeroFan'];
    dans cette page, j'ai le formulaire dans lequel je recupere les info du Fan selon le $idFan. par la suite, je modifie ses info et click le boutton "update":

    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
    <?php
    if (isset($_POST['prenom']) && isset($_POST['cin'])) {
     
    		$newPrenom= $_POST['prenom'];
    		$newCin= $_POST['cin'];
    		$theID= $_POST['idFan'];
    		//$result_array= array("",$_POST['prenom'],$_POST['cin']);
    		//$table= "fans";
    		echo 'again, this is id fan:' .$idFan;
    		$lines=update_club_fan($theID,$newPrenom,$newCin) or die(mysql_error().$lines);
     
        }
    	else echo 'vous devez remplir les champs vide';
     
    ?>
     
    <form id="update" name="update" action="#" method="post">
    	<input type="hidden" name="idFan" value="'.$idFan.'" /><p>
      <label>nom
      <input type="text" name="prenom" value="<?php echo $oldPrenom?>"/>
      </label>
      <p>
        <label>CIN
        <input type="text" name="cin" value="<?php echo $oldCin ?>" />
        </label>
      </p>
      <p>
        <input type="submit" name="Update" value="Update" />
    </p>
    </form>

    je crois devoir récuperer la variable $idFan=$_POST['numeroFan']; avec javaScript au lieu de php, mais je ne sais pas comment faire ça.


    Merci beaucoup pour vos idées

  2. #2
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Salut,

    Tu à une erreur dans ta fonction JS envoyer(), en javascript les variables n'ont pas de $, essaye comme ca :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript" >	
    function envoyer(url){
    	document.forms[url].submit();
    }
    </script>

    De plus tu appel ta fonction evoyer() avec 2 paramètres depuis ton formulaire (formName et 'update'), alors que la fonction ne prend qu'un paramètre url

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ben surtout, c'est quoi l'utilité de faire un submit en JavaScript via un lien au lieu d'un bouton submit ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Je vois des trucs tellement plus loufoques au taf que c'a m'a même pas choqué

  5. #5
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 63
    Par défaut
    1- ça ne marche plus quand j'ai modifié le script, pour y mettre deux var.
    2- j'utilise un lien pour des raison de graphisme, tout simplement.
    3- sauf que je voudrai vous dire que je j'ai fait des :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $idFan=POST_['numeroFan'];
    echo 'la valeur de idFan est:'.$idFan
    et ça me donne la bonne valeur. mais dans la reprise, c'est à dire quand je click"update" on dirait que la valeur de $idFan est ecrasée. normale puisqu'il n y pas de champs nommé numeroFan dans le formulaire de la page "update.php".

    comment faire alors?

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $idFan=POST_['numeroFan'];

    Il ne faut pas faire de shuffle sur le nom $_POST si tu veux que ça fonctionne !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 63
    Par défaut
    c'est une erreur de frappe. dans mon code en haut, c'est écrit proprement.

    mais, je crois avoir trouver la solution. un peu bizarre: dans ma page "update.php" j'ai donné au champs idFan, qui est d'ailleur de type="hidden", le même nom name="numeroFan". et ça passe

    merci beaucoup

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

Discussions similaires

  1. [EMF] Modifier les coordonnées d'un élément EMF
    Par deathness dans le forum Eclipse Modeling
    Réponses: 1
    Dernier message: 31/01/2012, 16h33
  2. Modifier les infos de l'assembly
    Par bettyblues dans le forum C#
    Réponses: 0
    Dernier message: 28/05/2011, 19h57
  3. modifier les info-bulles d'un graphique
    Par john-sheparde dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 30/03/2011, 14h34
  4. [Dojo] Modifier les classes CSS des éléments dijit
    Par Tavarez59 dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 02/11/2009, 21h40
  5. [VBA-E] modifier les info-bulles d'un graphique
    Par roseau dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/06/2007, 12h05

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