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

Langage PHP Discussion :

Creation des lignes d'une table


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Par défaut Creation des lignes d'une table
    Bonjour a tous,

    J'ai un formulaire donc le code est le suivant (svp, voir image de la page en fichier attache page1.jpg):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    require_once ('../mysqli_connect.php');
    ?>
    <table>
    <tr><td colspan="2">
    	<table align="center" border = "2" cellspacing ="0" cellpadding="3">
    		<tr><td><b>Functionality Name:</b></td> <td><b>Description:</b></td> <td><b>Status:</b></td> <td><a href="add_functionality.php">[Add functionality]</a></td></tr>
     
    	</table>
    </td></tr>
    </table>
    Je voudrais que quand l'utlisateur clique sur [Add functionality], s'ajoute une nouvelle ligne de la table et ainsi de suite (svp, voir fichier attache page2.jpg).

    j'ecris donc le code suivant add_functionality.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
    		<tr>
    		<td><input type="text" name="fname" style="background:#FFFFCC" size="20" maxlength="50" value="<?php if (isset($trimmed['fname'])) echo $trimmed['fname']; ?>" /></td>
    		<td> <textarea name="fdescription" rows="2" cols="30" wrap="hard" ><?php if (isset($_POST['fdescription'])) echo $_POST['fdescription']; ?></textarea> </td>
    		<td><?php echo '<select name="fstatus" style="width: 150px">';
     
    		// Retrieve all the statuses of a functionality
    		$q = "SELECT F_status_ID, Functionality_status FROM fstatuses ORDER BY F_status_ID ASC";
    		$r = mysqli_query($dbc, $q);
    		if (mysqli_num_rows($r) > 0) {
    			while ($menu_row = mysqli_fetch_array($r, MYSQLI_NUM)) {
    				echo "<option value=\"$menu_row[0]\">$menu_row[1]</option>\n";
    			}
    		}
    		echo '</select>';
    		mysqli_free_result($r);
    		unset($menu_row);?> </td>
    		<td valign="center"><a href="delete.php">[delete]</a></td>
    		</tr>
    j'inclus ce code dans le premier code ci-dessus de la facon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    require_once ('../mysqli_connect.php');
    ?>
    <table>
    <tr><td colspan="2">
    	<table align="center" border = "2" cellspacing ="0" cellpadding="3">
    		<tr><td><b>Functionality Name:</b></td> <td><b>Description:</b></td> <td><b>Status:</b></td> <td><a href="add_functionality.php">[Add functionality]</a></td></tr>
    		<?php require_once('../PHP-TESTS/add_functionality.php') ?>
     
    	</table>
    </td></tr>
    </table>
    le tout c'est que je ne clique meme pas sur le lien [Add functionality] mais la ligne que je veux ajouter s'affiche (page2.jpg).

    pourriez vous m'aider a creer des lignes de mon tableau au fur et a mesure que l'utilisateur clique sur [Add functionality]?
    Il y aussi les variables, comment je les gere?

    Merci d'avance.

    Billy
    Images attachées Images attachées   

  2. #2
    Membre Expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Par défaut
    Bonjour,

    je ne vois aucun formulaire dans vos script.

    pour créer un formulaire il faut le mettre dans une balise <form>.

    pour insertion de vote ligne dans le tableaux vous pouvez soit le faire avec un post-back ou avec du Javascript cmd appendChild

    aityahia

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Par défaut
    Merci pour ta reponse.

    qu'est ce que c'est post-back??

    ce n'est pas possible de le faire en php?

    Merci

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour,

    Escuses moi mais j'ais du mal a suivre depuis un moment que je cherches

    Peux tu m'éclairer ?
    Tu sais qu'un include c'est comme si il n'y avait qu'un PHP,
    alors j' ais don essayé de faire l'include et ça me donnes cela

    Peux tu controler que c'est exact, et je te répondrais sur ce PHP
    si je ne me suis pas trompé

    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
     
    <?php
    require_once ('../mysqli_connect.php');
    ?>
    <table>
    <tr><td colspan="2">
    <table align="center" border = "2" cellspacing ="0" cellpadding="3">
    <tr><td><b>Functionality Name:</b></td> <td><b>Description:</b></td> <td><b>Status:</b></td> <td><a href="add_functionality.php">
    [Add functionality]</a></td></tr><tr>
    <td><input type="text" name="fname" style="background:#FFFFCC" size="20" maxlength="50" value="<?php if (isset($trimmed['fname'])) echo $trimmed['fname']; ?>" /></td>
    <td> <textarea name="fdescription" rows="2" cols="30" wrap="hard" >
    <?php 
    if (isset($_POST['fdescription'])) echo $_POST['fdescription']; 
    ?>
    </textarea> </td>
    <td><?php echo '<select name="fstatus" style="width: 150px">';
    // Retrieve all the statuses of a functionality
    $q = "SELECT F_status_ID, Functionality_status FROM fstatuses ORDER BY F_status_ID ASC";
    $r = mysqli_query($dbc, $q);
    if (mysqli_num_rows($r) > 0) 
    {
     while ($menu_row = mysqli_fetch_array($r, MYSQLI_NUM)) 
      {
      echo "<option value=\"$menu_row[0]\">$menu_row[1]</option>\n";
      }
    }
    echo '</select>';
    mysqli_free_result($r);
    unset($menu_row);
    ?> 
    </td><td valign="center"><a href="delete.php">[delete]</a></td></tr>
    </table></td></tr></table>

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Par défaut
    Bonjour,

    Oui cést cela. Excusez moi j'ai mis le $trimmed mais c'est en fait $_POST

    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
    ?>
    <table>
    <tr><td colspan="2">
    <table align="center" border = "2" cellspacing ="0" cellpadding="3">
    <tr><td><b>Functionality Name:</b></td> <td><b>Description:</b></td> <td><b>Status:</b></td> <td><a href="add_functionality.php">
    [Add functionality]</a></td></tr><tr>
    <td><input type="text" name="fname" style="background:#FFFFCC" size="20" maxlength="50" value="<?php if (isset($_POST['fname'])) echo $$_POST['fname']; ?>" /></td>
    <td> <textarea name="fdescription" rows="2" cols="30" wrap="hard" >
    <?php 
    if (isset($_POST['fdescription'])) echo $_POST['fdescription']; 
    ?>
    </textarea> </td>
    <td><?php echo '<select name="fstatus" style="width: 150px">';
    // Retrieve all the statuses of a functionality
    $q = "SELECT F_status_ID, Functionality_status FROM fstatuses ORDER BY F_status_ID ASC";
    $r = mysqli_query($dbc, $q);
    if (mysqli_num_rows($r) > 0) 
    {
     while ($menu_row = mysqli_fetch_array($r, MYSQLI_NUM)) 
      {
      echo "<option value=\"$menu_row[0]\">$menu_row[1]</option>\n";
      }
    }
    echo '</select>';
    mysqli_free_result($r);
    unset($menu_row);
    ?> 
    </td><td valign="center"><a href="delete.php">[delete]</a></td></tr>
    </table></td></tr></table>
    Donc voila.
    je voudrais que l'utilisateur ajoute une nouvelle ligne au tableau chaque fois qu'il clique sur le lien [Add functionality].

    Merci

  6. #6
    Membre Expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Par défaut
    Citation Envoyé par billyrose Voir le message
    Merci pour ta reponse.

    qu'est ce que c'est post-back??
    Merci
    c'est le fait de recharger la page et d'ajouter la ligne avec du php.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Par défaut
    Citation Envoyé par aityahia Voir le message
    c'est le fait de recharger la ligne et d'ajouter la ligne avec du php.
    Comment est ce que ca se fait?

    Merci

  8. #8
    Membre Expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Par défaut
    avec quelque chose qui ressemble à ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr><td><b>Functionality Name:</b></td> <td><b>Description:</b></td> <td><b>Status:</b></td> <td><a href="<?php basename(__FILE__).'?action=insert';?>" >ajouter</a></td>



    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
     
    //...
    // l'entête de votre tableau. 
    </tr>
    <?php if (isset($_GET['action']))
    {
    	if ($_GET['action'] == 'insert')
     
    	{
     
    	  // et la vous afficher votre formulaire
    echo '<tr>
            <form name ="votreforme" action="votreaction.php">
     
     	</form>
     	</tr>';	
     
    	}
     
     
    }
     
    ?>

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Par défaut
    Bjr,

    Je ne comprends pas tres bien ce que tu veux dire.

    Mais qund j'essaye d'adapter cela a mon cas, j'obtiens le code suivant:

    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
    <tr><td><b>Functionality Name:</b></td> 
    <td><b>Description:</b></td> <td><b>Status:</b>
    </td> <td><a href="<?php basename(__FILE__);?></td>
    </tr>
     
    <?php if (isset($_GET['action']))
    {
    	if ($_GET['action'] == 'insert') {
     
    	  // affichage du formulaire
    	echo '<tr>';
            echo '<form name ="add_function" action="add_function.php" method="get">';
    		echo '<td><input type="text" name="depname" size="20" maxlength="50" value="" /></td>';
    		require_once ('../mysqli_connect.php');
    		echo '<td>';
    		echo '<select name="fstatus" style="width: 150px">';
     
    		// Retrieve all the statuses of a functionality
    		$q = "SELECT F_status_ID, Functionality_status FROM fstatuses ORDER BY F_status_ID ASC";
    		$r = mysqli_query($dbc, $q);
    		if (mysqli_num_rows($r) > 0) {
     
    			while ($menu_row = mysqli_fetch_array($r, MYSQLI_NUM)) {
    				echo "<option value=\"$menu_row[0]\">$menu_row[1]</option>\n";
    			}
    		}
    		echo '</select>';
    		mysqli_free_result($r);
    		unset($menu_row);
    		echo '</td>';
    		echo '<td> <textarea name="fdescription" rows="2" cols="30" wrap="hard" ></textarea> </td>';
    		echo '<td valign="center"><a href="delete.php">[delete]</a></td>';
     
     	echo '</form>';
     	echo '</tr>';	
     
    	}
     
     
    }
     
    ?>
    et en resultat, j'obtiens ceci (voir piece attachee).

    Il y a surement quelque chose que je ne comprends pas.
    Images attachées Images attachées  

  10. #10
    Membre Expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Par défaut
    Désolé mon code a été tronqué lors du copier coller depuis mon ID

    voici a quoi ça doit ressembler.

    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
    <tr><td><b>Functionality Name:</b></td> 
    <td><b>Description:</b></td> <td><b>Status:</b>
    </td> <td><a href="<?php basename(__FILE__).'?action=insert';?>">Ajouter</a></td>
    </tr>
     
    <?php if (isset($_GET['action']))
    {
    	if ($_GET['action'] == 'insert') {
     
    	  // affichage du formulaire
    	echo '<tr>';
            echo '<form name ="add_function" action="add_function.php" method="get">';
    		echo '<td><input type="text" name="depname" size="20" maxlength="50" value="" /></td>';
    		require_once ('../mysqli_connect.php');
    		echo '<td>';
    		echo '<select name="fstatus" style="width: 150px">';
     
    		// Retrieve all the statuses of a functionality
    		$q = "SELECT F_status_ID, Functionality_status FROM fstatuses ORDER BY F_status_ID ASC";
    		$r = mysqli_query($dbc, $q);
    		if (mysqli_num_rows($r) > 0) {
     
    			while ($menu_row = mysqli_fetch_array($r, MYSQLI_NUM)) {
    				echo "<option value=\"$menu_row[0]\">$menu_row[1]</option>\n";
    			}
    		}
    		echo '</select>';
    		mysqli_free_result($r);
    		unset($menu_row);
    		echo '</td>';
    		echo '<td> <textarea name="fdescription" rows="2" cols="30" wrap="hard" ></textarea> </td>';
    		echo '<td valign="center"><a href="delete.php">[delete]</a></td>';
     
     	echo '</form>';
     	echo '</tr>';	
     
    	}
     
     
    }
     
    ?>

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Par défaut
    Quand je clique sur Ajouter, je suis redirige http://localhost/PHP-TESTS/
    ou PHP-TESTS est le repertoire dans lequel je stocke mes fichiers php.

  12. #12
    Membre Expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Par défaut
    comme je ne connaissais pas ton url, je t'ai proposé de récupréer url avec basename(_FILE_)

    parcontre tu peut mettre directement URL directement vers votre fichier qui exécute le script.


    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="votrefichier.php?action=insert">Ajouter</a>

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Par défaut
    Merci. j'ai donc changer en ecrivant: another.php.'?action=insert';
    et voila la reponse de mon navigateur (IE)

    Forbidden
    You don't have permission to access /PHP-TESTS/<br /><b>Notice</b>: Use of undefined constant another - assumed 'another' in <b>D:/wamp/www/PHP-TESTS/another.php</b> on line <b>3</b><br /><br /><b>Notice</b>: Use of undefined constant php - assumed 'php' in <b>D:/wamp/www/PHP-TESTS/another.php</b> on line <b>3</b><br /> on this server.
    Meme quand je passe la souris sur Ajouter, j'ai ce texte qui apparait.

  14. #14
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par billyrose Voir le message
    Merci. j'ai donc changer en ecrivant: another.php.'?action=insert';
    et voila la reponse de mon navigateur (IE)
    Houla la syntaxe !! pas de "."


    another.php?action='insert';

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Par défaut
    Eh ben, j'enleve le "." et il provoque un parse error:

    Parse error: parse error in D:\wamp\www\PHP-TESTS\another.php on line 3
    la ligne 3 est :
    <td><a href="<?php another.php?action='insert';?>">Ajouter</a></td>

  16. #16
    Membre Expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Par défaut
    vous n'avez plus besoin de faire une balise PHP dans ce cas la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><a href="<?php another.php?action='insert';?>">Ajouter</a></td>
    ça doit être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><a href="another.php?action=insert">Ajouter</a></td>

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Par défaut
    C'est vrai. Mais qund je clique une premiere fois sur Ajouter, ma ligne se cree, mais qund je clique une deuxieme fois, au lieu d'avoir une deuxieme ligne creee, j'ai toujours une seule ligne.
    Alors que ce que je veux obtenir a la fin est autant de fois que je clique sur Ajouter, autant de lignes seront creees.

    Merci

  18. #18
    FoxLeRenard
    Invité(e)
    Par défaut
    Oui mais dis moi il va falloir te relire

    PAS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><a href="<?php another.php?action='insert';?>">Ajouter</a></td>
    MAIS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><a href="another.php?action='insert'">Ajouter</a></td>


    Escuses aityahia tu as été trop rapide j'avais pas vu

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Par défaut
    Citation Envoyé par FoxLeRenard Voir le message
    Oui mais dis moi il va falloir te relire

    PAS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><a href="<?php another.php?action='insert';?>">Ajouter</a></td>
    MAIS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><a href="another.php?action='insert'">Ajouter</a></td>
    C'est deja corrige.
    Merci

  20. #20
    Membre Expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Par défaut
    c'est tout a fait normal, quand vous ajoutez une ligne vous devrez au préalable l'enregistrer pour pouvoir ajouter d'autre.
    si vous voulez un ajout multi-lignes alors la il faudra remanier un peut ton code, la piste d'ajout par javascript est à privilégier.

Discussions similaires

  1. Tri des lignes d'une Table via Formulaire
    Par kato dans le forum Access
    Réponses: 3
    Dernier message: 19/04/2006, 13h53
  2. Réponses: 14
    Dernier message: 22/09/2005, 17h49
  3. Ajout/Suppression dynamique des lignes dans une table
    Par codexomega dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/08/2005, 19h50
  4. Copier des lignes d'une table
    Par thomas_strass dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 01/07/2005, 16h42
  5. Réponses: 4
    Dernier message: 31/05/2004, 13h26

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