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 :

Insérer ligne identique dans une <table>


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Etudiant en Informatique
    Inscrit en
    Avril 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant en Informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 23
    Points : 14
    Points
    14
    Par défaut Insérer ligne identique dans une <table>
    Bonjour,

    J'ai un petit soucis, j'ai ici une table contenant divers renseignements concernant des lots de composants, je remplis mon tableau à l'aide de mysql.

    Puis je voudrais avoir un bouton + qui permettrai de rajouter les même ligne mais vide. L'utilisateur pourra ainsi scanné le lot et celui-ci sera insérer directement dans l'input de type text.
    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
     
    <table border="1"; id=matable  width= "382"; name="liste" >
       <tr>
           <th>Description</th>
           <th>N° Lot</th>
           <th>Quantité</th>
    	   <th>  </th>
       </tr>
     
     
    <?php 
    $connect_db = connect(); 
    $req=mysql_query("SELECT lot.* FROM lot JOIN production ON production.Lot = lot.numero where production.OF='F100601369';");
    $count=0;
    $i = 0; 
    while($p=mysql_fetch_assoc($req))
    {
        $couleurs = array('#9E9E9E', '#1E80CC '); 
        $nombre = count($couleurs); 
     
            echo '<tr style="background-color : ' . $couleurs[ $i % $nombre] . '"> 
                        <td>'.$p['description'].'</td>
                         <td>'.$p['numero'].'</td>
                        <td>'.$p['Quantité'].'</td>
    <td> <input type=checkbox name=check'.$i.' onClick="changecolor(this,\''.$i.'\');" /> Validé </td>
    					<td> <input type=button onClick="Manquant('.$i.',this);" value="Manquant" />
    						 <input type=button onClick="Annuler('.$i.',this);" value="Annuler" />
    						 <input type=button value="+" onClick="???????" />
    						 </td>
                  </tr>'; 
            $i++; 
    	}
        $connect_db = close();
        ?>   
    </table>
    Utiliser le javascript ou le PHP ? Sachant que la table s'affiche avec 1 ligne sur deux d'une couleur différente. Et comment avoir la ligne identique avec les mêmes boutons ?

    Merci de votre aide.
    Si plus d'explications, demandez moi

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Tu devrais faire ça avec JavaScript, ça n'a aucun sens de recharger la page et rééxécuter la requête de selection... Regarde du coté d'Ajax et jQuery sur le forum JavaScript pour en savoir plus.

    Sachant que la table s'affiche avec 1 ligne sur deux d'une couleur différente
    JavaScript sait le faire également, regarde du coté de TableSorter 2.0

    Au passage, tu peux utiliser la balise [code] ici.

    Quelques points:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <table border="1"; id=matable width= "382"; name="liste" >
    A quoi servennt les ; ? pourquoi n'y a t'il pas de double quotes autours de chaque attribut ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req=mysql_query("SELECT lot.* FROM lot JOIN production ON production.Lot = lot.numero where production.OF='F100601369';");
    Et si ça échoue qu'est ce qu'il se passe ?

    Ce bloc:
    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
     
    while($p=mysql_fetch_assoc($req))
    {
    $couleurs = array('#9E9E9E', '#1E80CC ');
    $nombre = count($couleurs);
     
    echo '<tr style="background-color : ' . $couleurs[ $i % $nombre] . '">
    <td>'.$p['description'].'</td>
    <td>'.$p['numero'].'</td>
    <td>'.$p['Quantité'].'</td>
    <td> <input type=checkbox name=check'.$i.' onClick="changecolor(this,\''.$i.'\');" /> Validé </td>
    <td> <input type=button onClick="Manquant('.$i.',this);" value="Manquant" />
    <input type=button onClick="Annuler('.$i.',this);" value="Annuler" />
    <input type=button value="+" onClick="???????" />
    </td>
    </tr>';
    $i++;
    }
    Peut être avantageusement remplacé par une syntaxe plus esthétique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php while($p=mysql_fetch_assoc($req)): ?>
    <tr>
      <td><?=$p['description']?></td>
      ...
    <?php endwhile ?>
    Tu as mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <tr>
    <th>Description</th>
    <th>N° Lot</th>
    <th>Quantité</th>
    <th> </th>
    </tr>
    Ce tr devrait se trouver dans un thead et ses enfants td devraient êtres th.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <table>
     <thead>
      <tr>
       <th>A</th>
      </tr>
     </thead>
     <tfoot>
     </tfoot>
     <tbody>
     </tbody>
    </table>

  3. #3
    Membre à l'essai
    Homme Profil pro
    Etudiant en Informatique
    Inscrit en
    Avril 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant en Informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Merci pour cette réponse. Cela m'est d'une grande aide.

    Désolé pour le code, je me suis posé la question et je ne connaissais pas la balise [code]. Maintenant je le saurais.

    Ce forum est très bien, j'ai toujours une réponse dans les plus bref délais.
    Si j'ai encore un soucis de développement je viendrais ici

    Merci.

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Ce forum est très bien, j'ai toujours une réponse dans les plus bref délais.
    C'est l'idée

  5. #5
    Membre à l'essai
    Homme Profil pro
    Etudiant en Informatique
    Inscrit en
    Avril 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant en Informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    J'aurais voulu savoir d'après le code au dessus, et d'après ce morceau de code, on s'interesse à l'OF :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     <table border ="1" style="background-color:#EDEDED">
     
    	<tr><td>Utilisateur : </td><td><input type=text /></td><td></td></tr>
    	<tr><td>Ress </td><td><input type=text /></td><td></td></tr>
    	<tr><td >OF</td><td><input type=text id=OF /></td><td><input type=text /></td></tr>
    	<tr><td></td></tr><td></td><td></td><td><input type=text /></td>
    	<tr><td >OP</td><td><input type=text /></td><td></td></tr>
    </table>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $req=mysql_query("SELECT lot.* FROM lot JOIN production ON production.Lot = lot.numero where production.OF='F100601369';");

    Ici le numéro d'OF est inscrit à la main, cependant plus tard ce numéro d'OF sera récupérer dans la <table> à l'aide d'une douchette code-barre.

    Comment récupérer la valeur qui sera inscrit où l'id est OF sachant que ce n'est pas un formulaire et il n'y a pas de submit. Est-il possible lors du scan du code-barre que l'OF s'insere directement dans le <input> et on récupère directement sa valeur pour aller voir dans la base de donnée.

    Merci.

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    J'ai pas déjà répondu à un de tes threads par hasard ? C'est pas toi qui cherchais une solution pour un mécanisme de suivi des pièces et lots sur une chaine de montage ??

    Est-il possible lors du scan du code-barre que l'OF s'insere directement dans le <input> et on récupère directement sa valeur pour aller voir dans la base de donnée.
    Je ne vois même pas comment tu comptes t'y prendre. A mon avis tu aurais dû faire ton IHM en Java ou en .Net avec des winforms, là avec PHP tu va t'en voir pour faire ça et ce sera pourri.

    Le problème est que PHP n'est pas vraiment interactif avec l'utilisateur, tu ne peux pas décider coté serveur de rafraichir la page du client avec de nouvelles données. Cela vient du fait que PHP n'est exécuté que dans le cadre d'une requête HTTP, une fois la requête servie en totalité, PHP s'arrête. En revanche, avec Ajax, tu peux pooler un service web PHP pour obtenir des mises à jour et donc émuler cette notion évènementielle.

    -- Edit

    Ah mais si, j'ai trouvé: http://www.developpez.net/forums/d10...roduction-php/

Discussions similaires

  1. insérer lignes Tmemo dans une table delphi7
    Par wiski08000 dans le forum Débuter
    Réponses: 3
    Dernier message: 24/11/2013, 09h32
  2. Réponses: 12
    Dernier message: 06/08/2010, 15h00
  3. [AC-2003] Insérer des données dans une autre table
    Par franckimmo dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/08/2009, 17h51
  4. ligne identique dans une requête
    Par Soncar dans le forum VB.NET
    Réponses: 2
    Dernier message: 13/10/2008, 16h44
  5. Obtenir l'index de la ligne courante dans une repeating table
    Par stephane eyskens dans le forum InfoPath
    Réponses: 7
    Dernier message: 25/05/2007, 17h55

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