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 :

Ajout de commentaires dans une ligne de tableau


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 20
    Par défaut Ajout de commentaires dans une ligne de tableau
    bonjour,

    j'aimerai pouvoir ajouter un commentaire à une ligne d'un tableau par l'intermediaire d'un bouton "radio" ainsi que d'un "submit". Voici des screens pour illustrer :

    fichier nomenclature.php :


    Donc il faut selectionner une ligne grace à un bouton radio (cercle rouge), puis appuyer sur l'icône en bas, on a alors l'ecran suivant :

    fichier commentairepiece.php


    Ici on a la ligne 1 du tableau de tout à l'heure. J'aimerai pouvoir écrire un commentaire, le valider, puis dès qu'on fait la même manip, on le retrouve de manière editable.

    Voici mon code (commentairepiece.php):

    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    <?php
    session_start();
    ?>
    <script LANGUAGE="JavaScript">
    var width = screen.width;
    var height = screen.height;
    window.resizeTo(width,height);
    </script>
    <?php
    $serv=$_SESSION['service'];
    include('../include/MySQL.php');
    $cnx=connect();
     
    if (isset($_POST['ajoutcommentairepiece']))
    {
      $numdp=$_POST['numdp'];
      $avenant=$_POST['avenant'];
      $variante=$_POST['variante'];
      $hypothesechiffrage=$_POST['hypothesechiffrage'];
      $nom=$_POST['nom'];
      $ordre=$_POST['ordre'];
      $commentaire=$_POST['commentaire'];
      $query="update nomenclature set commentaire='$commentaire'
    						where numdp='$numdp' and avenant='$avenant' and variante='$variante' 
    						and hypothesechiffrage='$hypothesechiffrage' and nom='$nom' and ordre='$ordre'";
    						$resultat=sendSQL($cnx,$query);   
      echo '<script language="javascript">';
      echo 'opener.focus();';
      echo 'self.window.close();';
      echo '</script>';
    }
    else
    {
    $numdp=$_GET['numdp'];
    $avenant=$_GET['avenant'];
    $variante=$_GET['variante'];
    $hypothesechiffrage=$_GET['hypothesechiffrage'];
    $nom=$_GET['nom'];
    //$ordre=$_GET['ordre'];
     
     
    $query="SELECT commentaire
            FROM nomenclature 
            where numdp='$numdp' and avenant='$avenant' and variante='$variante' 
            and hypothesechiffrage='$hypothesechiffrage' and nom='$nom'";
    $res=sendSQL($cnx,$query);   
    $commentairepiece=mysql_result($res,0,0);
    $commentairepiece=stripslashes($commentairepiece);
    echo '<Table width=100% height=100% border=0 cellpadding="0" cellspacing="0">';
    echo '<td align="center" background="image/fond.jpg">';
    echo "<br><font face='arial' size=4 color=#89abcd><center>Ajouter un commentaire<br></center></font>";
    echo '<form action="commentairepiece.php" method="post">';
    echo '<Table width=200 border=0	cellspacing=0 cellpadding=0 valign="top">';
    echo '<tr align="left"><th>Num DP</th><th>Av</th>
    <th>Var</th><th>Hyp</th><th>Nom de la pièce</th>';
    echo '<tr><td width="6">';
    echo '<input type="text" name="numdp" size="6" value="'.$numdp.'" readonly></td>';
    echo '<td width="1">';
    echo '<input type="text" name="avenant" size="1" value="'.$avenant.'" readonly></td>';
    echo '<td width="1">';
    echo '<input type="text" name="variante" size="1" value="'.$variante.'" readonly></td>';
    echo '<td width="1">';
    echo '<input type="text" name="hypothesechiffrage" size="1" value="'.$hypothesechiffrage.'" readonly></td>';
    echo '<td width="1">';
    echo '<input type="text" name="nom" size="22" value="'.$nom.'" readonly></td>';
    echo '</table>';
    echo '<br><br>';
    echo '<Table width=100% border=0 cellpadding="0" cellspacing="0">';
    echo '<tr><td align="center"><TEXTAREA NAME="commentairepiece" ROWS="6" COLS="65">'.$commentairepiece.'</TEXTAREA></td></tr>';
    echo '<tr><td align="center"><br /><input type="submit" name="ajoutcommentairepiece" value="Ajouter le commentaire"></td></tr>';
    echo '</form>';
    }
     
    mysql_close($cnx);
    ?>
    Et voici comment j'appelle mon fichier dans nomenclature.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo '<a class="icone" href="#" onclick="javascript: window.open(\'commentairepiece.php?numdp='.$numdp.'&avenant='.$avenant.'&variante='.$variante.'&hypothesechiffrage='.$hypothesechiffrage.'&nom='.$nom.'&ordre='.$choix.'\',\'Com\',\'resizable=yes,scrollbars=yes,top=0,left=0,width=1024,height=768\');submit();return false;">
    					<img src="image/pluscom.png" alt="Ajout commentaire" title="Ajout commentaire"/></a></td>';
    Voilà, aujourd'hui je ne peux qu'écrire le commentaire, valider, mais il ne s'enregistre pas dans ma base donc n'apparait pas lors de la deuxième visite du boutou radio :/

    Merci d'avances

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce que tu as fais un minimum de debugage, comme afficher ta requête UPDATE avant de l'executer ?

    Au passage, il faut echapper tes chaines dans la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $commentaire=mysql_real_escape_string($_POST['commentaire']);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 20
    Par défaut
    Oui ça doit venir de ma requete update apparement...
    Lorsque j'ajoute un commentaire manuellement dans la base, ça me l'affiche lorsque j'ouvre le commentaire de la ligne où je l'ai ajouté.
    Comment je peu tester ma requete update .. ?

  4. #4
    Membre éclairé
    Avatar de Freedolphin
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2006
    Messages : 291
    Par défaut
    Fais un echo de ta requete update et regarde à quoi ça ressemble.

  5. #5
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 20
    Par défaut
    Apparement ça viendrait de l'ordre, enfaite c'est tout bête j'aimerai le récupéré de la l'adresse :



    (le dernier element)

    comment faire ? avec un GET ça marche pas

  6. #6
    Membre éclairé
    Avatar de Freedolphin
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2006
    Messages : 291
    Par défaut
    Citation Envoyé par Morronight Voir le message
    avec un GET ça marche pas
    Si cette adresse est bien la tienne (je veux dire pas une récupérée ailleurs), pourquoi ne pas envoyer les infos par POST et les récupérer ensuite ?

  7. #7
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 20
    Par défaut
    c'est justement ça le problème, j'arrive à tout récuperer, sauf l'ordre...

    car enfaite $ordre de ma table correspond à $choix de mon tableau (bouton radio)... et si je fais un $_post['$choix']; dans nomenclature et un get dans commentairepiece, ça prend toujours pas la valeur... :s

  8. #8
    Membre éclairé
    Avatar de Freedolphin
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2006
    Messages : 291
    Par défaut
    Si ta donnée à un identifiant unique (numdp ?), pourquoi ne pas simplement reprendre cette id pour tes requêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query="update nomenclature set commentaire='$commentaire' where numdp='$numdp'";
    puisque, si j'ai tout compris, il n'y a que le commentaire qui t'intéresse ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/09/2010, 15h45
  2. Boutons dans une ligne de tableau
    Par androz dans le forum C++Builder
    Réponses: 13
    Dernier message: 22/08/2009, 18h59
  3. [RegEx] Récupération dans une ligne de tableau
    Par nazoreen dans le forum Langage
    Réponses: 3
    Dernier message: 01/07/2009, 20h15
  4. Réponses: 2
    Dernier message: 26/06/2009, 12h55
  5. Réponses: 13
    Dernier message: 01/02/2006, 12h00

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