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. #21
    Membre régulier
    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
    Points : 85
    Points
    85
    Par défaut
    J'ai essaye avec Javascript. J'ai reussi a creer dans la nouvelle ligne de la table, la zone de texte, la zone textarea, le href mais j'y suis pas arrivee pour la liste deroulante. Parceque les valeurs de ma liste deroulante proviennent d'une table MySQL

  2. #22
    FoxLeRenard
    Invité(e)
    Par défaut
    On ne peut plus t'aider = trop de changements ...

    Tu peux nous faire un résumer en postant le PHP complet ou tu en es

    Merci

  3. #23
    Membre régulier
    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
    Points : 85
    Points
    85
    Par défaut
    Merci a vous

    Le code que vous m'avez aide a ecrire ne fait pas du multi-ligne:

    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="another.php?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>';	
     
    	}
     
     
    }
     
    ?>
    Mais sinon, chaque fois que je clique sur Ajouter, je n'ai pas de nouvelles lignes qui s'ajoute.

    Alors j'ai modifie mon code comme ceci:

    j'ai un premier fichier qui me permet d'afficher l'entete de ma table (ecrit en HTML)

    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
    <html>
    <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
       <script src="ajax_req.js" type="text/javascript"></script>
    </head>
    <body>
    <h1> Create an Item </h1>
    <form  method="post">
    	<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><input type="submit" Name= "Ajouter" Value="Ajouter" onclick="htmlData('status.php')"></a></td></tr>
     
     
    	</table>
    </form>
    </body>
    </html>
    J'ajoute une ligne de en executant le code status.php qui est :
    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
    <tr>
    <td><input type="text" name="depname" size="20" maxlength="50" value="" /></td>
    <td><select name="fstatus" style="width: 150px">';
     
    <?php
    require_once ('../mysqli_connect.php');				
    		// 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";
    			}
    		}
    		mysqli_free_result($r);
    		unset($menu_row);
     
     
     ?>
    </select>
    </td>
    <td> <textarea name="fdescription" rows="2" cols="30" wrap="hard" ></textarea> </td>
    <td valign="center"><a href="delete.php">[delete]</a></td>
    </tr>
    J'ai utilise JS-AJAX pour l'execution de mon code status.php
    mon fichier js est le 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
    function GetXmlHttpObject(handler)
    {
       var objXMLHttp=null
       if (window.XMLHttpRequest)
       {
           objXMLHttp=new XMLHttpRequest()
       }
       else if (window.ActiveXObject)
       {
           objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
       }
       return objXMLHttp
    }
     
    function stateChanged()
    {
       if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
       {
           }
       else {
     
       }
    }
     
    // Will populate data based on input
    function htmlData(url, qStr)
    {
       if (url.length==0)
       {
           return;
       }
       xmlHttp=GetXmlHttpObject()
       if (xmlHttp==null)
       {
           alert ("Browser does not support HTTP Request");
           return;
       }
     
       xmlHttp.onreadystatechange=stateChanged;
       xmlHttp.open("GET",url,true) ;
       xmlHttp.send(null);
    }
    Et la, rien. Quand je clique sur Ajouter, la ligne n'est pas ajoutee.

    merci d'avance

  4. #24
    Membre régulier
    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
    Points : 85
    Points
    85
    Par défaut
    Bonjour a tous,

    au lieu d'utiliser AjAX et JS, j'ai changer mon approche du probleme.

    Voila cette fois je cree un fonction AddRow() qui ajoute un ligne dans une table.
    Ensuite je cree la function CurrentTable($table) les donnes dans une table

    jáboutit au 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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <?php
    function AddRow() {
    	require_once ('../mysqli_connect.php');
    	$output ='<tr>';
    	$output .= '<td><input type="text" name="fname" size="20" maxlength="50" value="" /></td>';
    	$output .='<td>';
    	$output .='<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)) {
    			$output .= "<option value=\"$menu_row[0]\">$menu_row[1]</option>\n";
    			}
    	}
    			$output .= '</select>';
    			mysqli_free_result($r);
    			unset($menu_row);
    			$output .='</td>';
    			$output .= '<td> <textarea name="fdescription" rows="2" cols="30" wrap="hard" ></textarea> </td>';
    			$output .= '</tr>';
    	return $output;
    }
    ?>
    <?php
    function CurrentTable($table){
    	foreach ($table as $id => $list) {
    			echo '<tr>';
    		foreach ($list as $k => $v ) {
    			echo '<td align="left"> ' . $v . '</td>';
    			}
    			echo '<td><a href= "delete.php?id=' . $id . '">Delete</a></td>';
    			echo '</tr>';
    		}
    }
     
    ?>
     
     
    <h1> Create an Item </h1>
    <form action="test.php"  method="post">
    	<input type="submit" Name= "Ajouter" Value="Ajouter">
    	<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> </tr>
     
    <?php
    $id=0;
    $table= array();
    if (!isset ($_POST['Ajouter'])){
    	CurrentTable($table);
    }
    elseif (isset ($_POST['Ajouter'])){
    		$id += 1;
    		$op = AddRow();
    		echo $op;
    		$table =  array($id => array("fname" => $_POST['fname'], "fdescription" => $_POST['fdescription'], "fstatus"=> $_POST['fstatus']));
    		echo $id;
    		CurrentTable($table);
    		var_dump ((unset) $op);
    		var_dump((unset) $_POST['Ajouter']);
    	}
    ?>
     
    	</table>
    </form>
    Mais quand je clique sur Ajouter la premiere fois, j'ai trois erreurs:

    Notice: Undefined index: fname in D:\wamp\www\PHP-TESTS\test.php on line 57

    Notice: Undefined index: fdescription in D:\wamp\www\PHP-TESTS\test.php on line 57

    Notice: Undefined index: fstatus in D:\wamp\www\PHP-TESTS\test.php on line 57
    ce qui est normal car je n'ai encore rien entre dans ma ligne et $_POST sont vides. Ensuite je rentre des donnees, et je clique sur Ajouter, la nouvelle ligne entree s'affiche.
    je rentre une deuxieme fois des donnees et clique sur Ajouter. mais cette ligne remplace les donnees que j'ai precedemment rentrees et ainsi de suite. Et en plus, $id ne s'incremente pas.
    Ce que je veux afficher c'est toutes les lignes rentrees

    Merci
    Roseline

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, 12h53
  2. Réponses: 14
    Dernier message: 22/09/2005, 16h49
  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, 18h50
  4. Copier des lignes d'une table
    Par thomas_strass dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 01/07/2005, 15h42
  5. Réponses: 4
    Dernier message: 31/05/2004, 12h26

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