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 :

Modifier des enregistrements affichés dans un tableau HTML


Sujet :

Langage PHP

  1. #1
    Débutant
    Inscrit en
    Avril 2005
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 469
    Points : 106
    Points
    106
    Par défaut Modifier des enregistrements affichés dans un tableau HTML
    Bonjour,

    Dans le cadre de mon application, je dois mettre en place des formulaires de modification sur certaines tables.

    Pour cela, j'ai prévu de donner la possibilité de modifier plusieurs lignes à la fois, donc d'extraire un certain nombre de lignes dans un <table> et à l'aide de bouton radio par exemple , modifier ou supprimer les lignes cochées.

    Je sais extraire et afficher mais j'ai des problèmes pour modifier plusieurs lignes à la fois c'est à dire les identifier dans le tableau HTML.

    Merci de vos solutions et pistes pour réaliser ce procédé ?

    Cordialement

  2. #2
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 373
    Points
    19 373
    Par défaut
    Bonjour madina,

    Si tu fais avec des boutons radio, dans ta page de traitement ( une fois que tu as envoyé ton formulaire donc ) tu récupères les $_POST['id_bouton_radio'] qui ne sont pas vides, et tu auras tes lignes à modifier.

  3. #3
    Débutant
    Inscrit en
    Avril 2005
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 469
    Points : 106
    Points
    106
    Par défaut
    Merci FirePrawn,

    En fait mon problème c'est surtout comment parcourir le tableau pour récupérer la valeur de chaque champ dans chaque ligne.

    Cordialement

  4. #4
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 373
    Points
    19 373
    Par défaut
    Il n'y a aucun parcours à faire.
    Sur ton bouton radio, bouton, peu importe, tu mets comme valeur la valeur de ta cellule, et tu auras donc directement la valeur que tu cherches avec $_POST['nom_bouton']

  5. #5
    Membre actif

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 191
    Points : 275
    Points
    275
    Par défaut
    sur le principe voici comment je ferais
    suffit de modifier la boucle for
    $i sera l'id de l'élément dans la base
    le résultat des checkbox correspond aux ids (index ici)
    on recupere les champs avec comme nom "<name>$i"

    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
    Array
    (
        [index] => Array
            (
                [0] => 0
                [1] => 1
            )
     
        [name0] => un
        [desc0] => 
        [name1] => deux
        [desc1] => 
        [name2] => trois
        [desc2] => 
        [name3] => quatre
        [desc3] => 
        [name4] => cinq
        [desc4] => 
    )
    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
    /**
     * @filesource champs.php
     * @version 1.0
     * Date 28 juil. 2011
     */
     
    include_once 'template.php';
     
    $out = new template('index.tpl');
    $out->addVar('title', 'Essai champ');
     
    $table = '<table>';
    $table.= '<tr>';
    $table.= '<td></td>';
    $table.= '<td>Nom</td>';
    $table.= '<td>Description</td>';
    $table.= '</tr>';
     
    for($i=0;$i<5;$i++){
    	$table.= '<tr>';
    	$table.= '<td><input type="checkbox" name="index[]" value="'.$i.'"></td>';
    	$table.= '<td><input type="text" name="name'.$i.'"></td>';
    	$table.= '<td><input type="text" name="desc'.$i.'"></td>';
    	$table.= '</tr>';
    }
     
    $table.= '/<table>';
     
    $out->addVar('body', $table);
     
    $out->compile();
    $out->display();
     
    $out->debug($_POST);
    index.tpl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>{$title}</title>
    </head>
    <body>
    <form action="" method="POST">
    {$body}
    <input type="submit" value="Envoyer">
    </form>
    </body>
    </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
    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
    77
    <?php
    /**
     * @filesource template.php
     * @version 1.0
     * Date 28 juil. 2011
     */
     
    class template {
    	const PATTERN='({[$]([^}]*)})';
     
    	protected $vars = null;
     
    	protected $template = null;
     
    	protected $content = null;
     
    	protected $matches = null;
     
    	/**
    	 * Construteur
    	 * @param unknown_type $template
    	 */
    	public function __construct($template){
    		$this->vars = array();
    		$this->template = $template;
    	}
     
    	/**
    	 * Ajoute une variable
    	 * @param string $name
    	 * @param string $value
    	 */
    	public function addVar($name, $value){
    		$this->vars[$name] = $value;
    	}
     
    	/**
    	 * Compilation
    	 */
    	public function compile(){
    		$content = $this->readFile($this->template);
    		$this->searchVars($content);
    		foreach ($this->matches[1] as $match){
    			$search[] = '({[$]'.$match.'})';
    			$replace[] = $this->vars[$match];
    		}
    		$content = preg_replace($search, $replace, $content);
    		$this->content = $content;
    	}
     
    	/**
    	 * recherche les variables du template
    	 */
    	protected function searchVars($content){
    		preg_match_all(self::PATTERN,$content,$this->matches);
    	}
     
    	/**
    	 * Affiche le contenu
    	 */
    	public function display(){
    		echo $this->content;
    	}
     
    	/**
    	 * Lit un fichier
    	 * @param string $filename
    	 * @return string
    	 */
    	protected function readFile($filename){
    		return file_get_contents($filename);
    	}
     
    	public function debug($var){
    		echo '<pre>'.print_r($var,true).'<pre>';
    	}
    }

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    je pense que Medina a surtout besoin de connaitre la METHODOLOGIE.

    A- FORMULAIRE
    1/ tu as un formulaire contenant le tableau complet
    2/ Tu affiches ton tableau (table) ligne par ligne. (ca, tu sais faire)
    3/ sur chaque ligne, tu affiches :
    - SOIT (toutes les lignes contiennent deja des input) :
    (ligne-i) | inputi-a | inputi-b | inputi-c | ... | laboxi
    - SOIT (on affiche d'abord les données, puis en cochant checkboxi, on change les data en input -> ca, ca peut se faire en javascript) :
    (ligne-i) | datai-a | datai-b | datai-c | ... | laboxi
    (ligne-i) | inputi-a | inputi-b | inputi-c | ... | laboxi (seules les lignes cochées contiennent des input)
    4/ un bouton submit tout à la fin du formulaire
    B- TRAITEMENT
    1/ on recupere les données
    2/ pour chaque ligne dont la checkbox est cochée : on traite la ligne (modification - enregistrement)

    la question est : "comment identifier chaque ligne, pour pouvoir en modifier les données ?

    Maintenant que la METHODOLOGIE a été définie, passons à la PROGRAMMATION :
    L'astuce est d'utiliser des array dans le "name" : name="data1[]" name="data2[]" ..., name="checkbox[]"
    On récupère alors des array : $_POST['data1'], $_POST['data2'], ..., $_POST['checkbox'] (chaque $_POST['xxx'] est un array)
    On peut alors parcourir ces array, et pour chaque $i où $_POST['labox'][$i] est coché :
    on modifie les données $_POST['data1'][$i], $_POST['data2'][$i], ...

    Si les données viennent d'une BdD (ce que je suppose), on peut aussi supposé que chaque enregistrement a un ID (auto-increment)
    sur chaque ligne du tableau, on peut mettre cet ID dans un <input type="hidden" name="ID[]" value="<?php echo $row['ID']; ?>" />
    => la modification se fera alors sur l'enregistrement dont l'ID est : ID='$_POST['ID'][$i]'

    Dans le principe :
    A- FORMULAIRE
    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
    <!-- FORMULAIRE -->
    <form method="post" action="xxxxxxxxxx.php">
    <table>
    <?php // requete en BdD pour recuperer les donnees a afficher
    $query 		= "SELECT * FROM latable;";
    $result 	= mysql_query($query) or die('Erreur SQL :<br />'.$query.'<br />'.mysql_error());
    while ($row = mysql_fetch_array($result))
    {
    	// pour chaque ligne :
    ?>
    	<tr>
    		<td><input type="text" name="data1[]" value="<?php echo $row['data1']; ?>" /></td>
    		<td><input type="text" name="data2[]" value="<?php echo $row['data2']; ?>" /></td>
    		<td><input type="text" name="data3[]" value="<?php echo $row['data3']; ?>" /></td>
    		<!-- [......] -->
    		<td>
    			<input type="hidden" name="ID[]" value="<?php echo $row['ID']; ?>" />
    			<input type="checkbox" name="labox[]" value="ON" />
    		</td>
    	</tr>
    <?php
    } // fin while
    ?>
    	<tr>
    		<td colspan="[nombre-de-colonnes]"><input type="submit" name="envoiform" value="Modifier les données" /></td>
    	</tr>
    </table>
    </form>
    B- TRAITEMENT
    - on récupère d'abord l'array des checkbox,
    - on ne traite que les lignes où la checkbox a été cochée.
    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
    <?php // TRAITEMENT
    if(isset($_POST['envoiform'])  // (si le formulaire a été envoyé)
    {
    	// recuperation des checkbox (array !)
    	$array_box = $_POST['labox'];
    	// on parcours l'array
    	foreach($array_box as $key => $val) {
    		if($val == 'ON') { // LA CASE EST COCHEE -> on traite les donnees
    			// on recupere les donnees (de la ligne correspondante)
    			$ID = $_POST['ID'][$key];
    			$data1 = $_POST['data1'][$key];
    			$data2 = $_POST['data2'][$key];
    			$data3 = $_POST['data3'][$key];
    			// on protège la BdD contre les injections SQL
    			$ID = mysql_real_escape_string($ID);
    			$data1 = mysql_real_escape_string($data1);
    			$data2 = mysql_real_escape_string($data2);
    			$data3 = mysql_real_escape_string($data3);
    			// on modifie l'enregistrement en BdD
    			$query_update 		= "UPDATE latable SET ".
    						" data1 	= '".$data1."', ".
    						" data2 	= '".$data2."', ".
    						" data3 	= '".$data3."', ".
    						// [...]
    						" dataxxx 	= '".$dataxxx."' ".
    						" WHERE ID 	= '".$ID."';";
    			mysql_query($query_update) or die('Erreur SQL :<br />'.$query_update.'<br />'.mysql_error());
    		}
    	}
    	unset($_POST);
    }
    Dernière modification par Invité ; 01/08/2011 à 02h59.

  7. #7
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 373
    Points
    19 373
    Par défaut
    J'ai du rater une étape parce que poru moi il n'y avait pas besoin d'un parcours
    Ca ressemble à quoi ton tableau de données Medina ? On peut avoir un aperçu du code ?

  8. #8
    Débutant
    Inscrit en
    Avril 2005
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 469
    Points : 106
    Points
    106
    Par défaut
    Merci à tous pour la réponse

    jreaux62 j'ai bien compris le principe abordé. Pour ma part, je vais adopter que toutes les lignes contiennent déjà des input.

    En ayant d'abord la méthodologie, je perçois mieux le code.

    Je vais tester ça d'un instant à l'autre et je vous en tiendrai compte.

    Cordialement

  9. #9
    Débutant
    Inscrit en
    Avril 2005
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 469
    Points : 106
    Points
    106
    Par défaut
    Merci FirePrawn

    Pour moi mon tableau de données c'est des <tr> et à chaque <tr>, un <td> renfermant un input contenant un champ d'une base de données extraite.
    c'est comme en principe, le tableau élaboré par jreaux62.

    Je crois qu'on a besoin d'une boucle pour parcourir toutes les lignes du tableau.


    Cordialement

  10. #10
    Membre actif Avatar de Korri
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Points : 232
    Points
    232
    Par défaut
    madina, une fois que tu à affiché tes données dans un tableau HTML, tu ne peut pas (simplement ne tout cas) les récupérer. Le plus courant pour les modifier et soit de tout enregistrer dans des <input> et de récupérer le tout dans ton script après validation du formulaire. Soit de ré-extraire les donnés de ta base avant de les modifier.

    Je m'excuse si ce n'est pas très clair, mais sans plus de détails sur ton code je peut difficilement faire mieux.

  11. #11
    Débutant
    Inscrit en
    Avril 2005
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 469
    Points : 106
    Points
    106
    Par défaut
    Merci Korri,

    En fait la modification des données extraites vers la base de données se fait à quel moment donc ?

    Car une fois sur le tableau, je les récupères dans ma page de validation avant de modifier.

    C'est pas encore tout à fait clair ta précision.

  12. #12
    Débutant
    Inscrit en
    Avril 2005
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 469
    Points : 106
    Points
    106
    Par défaut
    jreaux62, En fait la modification ne se fait que sur la première ligne.

    Je crois que la récupération et le parcours des tableaux des input pose problème.

    ça prends en compte que la première ligne cochée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $array_box = $_POST['labox'];
    	// on parcours l'array
    	foreach($array_box as $key => $val) {
     
    	      if($val =='ON') { // LA CAse est cochée
     
                .........
                  .......

  13. #13
    Membre actif Avatar de Korri
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Points : 232
    Points
    232
    Par défaut
    madina, la modification se fera directement avec un appel à ta base de données, au moment ou tu reçois les données modifiées envoyées par l'utilisateur (typiquement quand tu reçoi en POST les données de ton formulaire que tu aura généré).

  14. #14
    Débutant
    Inscrit en
    Avril 2005
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 469
    Points : 106
    Points
    106
    Par défaut
    Ok,

    Mais c'est justement ce j’ai fais avec l'exemple de jreaux62.
    C'est après l’envoi des données par le POST que je fais un update.

    mais là jreaux62, la boucle ne prends pas les autres lignes, il s'arrête juste à la première ligne et ne modifie pas les autres lignes même si le checkbox est coché.

    ?

  15. #15
    Membre actif Avatar de Korri
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Points : 232
    Points
    232
    Par défaut
    Citation Envoyé par madina Voir le message
    Ok,

    Mais c'est justement ce j’ai fais avec l'exemple de jreaux62.
    C'est après l’envoi des données par le POST que je fais un update.

    mais là jreaux62, la boucle ne prends pas les autres lignes, il s'arrête juste à la première ligne et ne modifie pas les autres lignes même si le checkbox est coché.

    ?
    Dans l'exemple de jreaux62, il met plusieurs checkbox avec name="labox[]", ce qui te permet d'avoir la liste des cases cochées dans une array();

    Il enregistre ensuite chaque ligne dans le foreach qui parcoure chaque élément du tableau, je ne voie pas ce qui ne va pas.

    Vérifie bien que tu reçois les bonnes infos en post avec un c'est toujours pratique !

  16. #16
    Débutant
    Inscrit en
    Avril 2005
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 469
    Points : 106
    Points
    106
    Par défaut
    Korri,

    Le problème c'est que quand je coche les autres lignes , il les modifie pas.
    Il ne modifie que la première ligne.

  17. #17
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $array_box = $_POST['labox'];
    print_r($array_box);
    print_r va afficher le contenu de l'array : quel résultat donne-t-il ?
    Ou comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $array_box = $_POST['labox'];
    	// on parcours l'array
    	foreach($array_box as $key => $val) {
    	      echo 'checkbox n°'.$key.' : '.$val;
    	}
    Important : quand tu est coincé(e) dans un code, PENSE a tester/vérifier en AFFICHANT les résultats envoyés
    - echo ...
    - print_r(...);
    Bien placés, il peuvent te fournir des indices pour résoudre TOI-MEME les problèmes.

    Question en passant ... tu es sûre d'avoir mis ca dans ton formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	<input type="checkbox" name="labox[]" value="ON" />
    Peux-tu au moins nous mettre TON code ? Ca peut aussi aider .....

  18. #18
    Débutant
    Inscrit en
    Avril 2005
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 469
    Points : 106
    Points
    106
    Par défaut
    Bonjour,

    jreaux62, Bon avec le , il m'affiche que le premier élément du tableau array de "labox[]".

    Exemple quand je coche deux lignes, il m'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [0] => ON [1] => ON ) Vous avez modifié 2 lignes
    Voilà mon formulaire, mais c'est un fichier .php avec des echo :

    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
    <?php
    echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
          <link rel="stylesheet" media="screen" type="text/css" title="Design" href="budget_css.css" />
     <title>Modifier une operations</title>
     </head>
       <body >
     <div id="formulaire">  
      <form name="test" action ="modif_echo_op.php"  method="post" >
    <fieldset ><legend><b>Compte à modifier</b></legend>
    </br>
    <table border="1"  style="border-collapse:collapse" align="center"  width=60%>
    <tr>
    <th>Numéro compte</th>
    <th>Libelle</th>
    <th>Code_cr</th>
    <th>Montant</th>
    <th>Date</th>
    <th>reference</th>
    <th>fournisseur</th>
    <th>A modifier</th>
    </tr>';
     
    include('fonctions.php');
      connect();
    $sql='select * from operations';
    $sql_result=mysql_query($sql);
    while($row_op_mod=mysql_fetch_array($sql_result)) 
    {
    echo '<tr>  
    <td width=10%><input type="text" name="Num_compte[]" size="15" value="'.$row_op_mod['Num_compte'].'" /></td> 
    <td><input type="text" name="Libelle[]" size="40"  value="'.$row_op_mod['libelle'].'" /></td> 
    <td class="cr"><input type="text" name="Code_cr[]" size="15" value="'.$row_op_mod['Code_cr'].'" /></td>  
    <td width=10%><input type="text" name="Montant[]" size="15" value="'.$row_op_mod['montant_realise'].'" /></td>
    <td width=10%><input type="text" name="Date[]" size="10"  value="'.$row_op_mod['date_realise'].'" /></td>
    <td><input type="text" name="Reference[]"  value="'.$row_op_mod['reference'].'" /></td>
     <td><input type="text" name="Fournisseur[]"  value="'.$row_op_mod['fournisseur'].'" /></td>  
     <td><input type="checkbox" name="labox[]" value="ON" /></td>
    <td style="display : none"><input type="hidden" name="ID[]" value="'.$row_op_mod['id_operation'].'" /></td>
    </tr>';
    }
    echo '<tr align="center">
    <td colspan="3"><input type="submit" name="envoiform" value="Modifier les données" /></td>
    </tr>
    </table>
    </fieldset>
    </form>
    </div>
     </body>
    </html>';
     
    ?>
    Et voilà le fichier de traitement modif_echo_op.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
    <?php
    $nb_modif=0;
    if(isset($_POST['envoiform']))  // (si le formulaire a été envoyé)
    {
      if (isset($_POST['labox']))
      {
      include('fonctions.php');
     connect();
    // recuperation des checkbox (array !)
    $array_box = $_POST['labox'];
    print_r($array_box);
    // on parcours l'array
    foreach($array_box as $key => $val) {
     if($val =='ON') { // LA CASE EST COCHEE -> on traite les donnees
    // on recupere les donnees (de la ligne correspondante)
    $ID = $_POST['ID'][$key];
    $num_compte = $_POST['Num_compte'][$key];
    $libelle = $_POST['Libelle'][$key];
    $code_cr = $_POST['Code_cr'][$key];
    $montant = $_POST['Montant'][$key];
    $date_realise = $_POST['Date'][$key];
    $reference = $_POST['Reference'][$key];
    $fournisseur = $_POST['Fournisseur'][$key];
    // on protège la BdD contre les injections SQL
    $ID = mysql_real_escape_string($ID);
    $num_compte = mysql_real_escape_string($num_compte);
    $libelle = mysql_real_escape_string($libelle);
    $code_cr = mysql_real_escape_string($code_cr);
    $montant = mysql_real_escape_string($montant);
    $date_realise = mysql_real_escape_string($date_realise);
    $reference = mysql_real_escape_string($reference);
    $fournisseur = mysql_real_escape_string($fournisseur);
    // on modifie l'enregistrement en BdD
    $query_update = 'UPDATE operations SET Num_compte="'.$num_compte.'",
     libelle= "'.$libelle.'", 
     code_cr ="'.$code_cr.'",
    montant_realise='.$montant.',
    date_realise="'.$date_realise.'",
    reference="'.$reference.'",
    fournisseur="'.$fournisseur.'"
     WHERE id_operation	= '.$ID.'';
    $res_query=mysql_query($query_update) or die('Erreur SQL :<br />'.$query_update.'<br />'.mysql_error());
    if (false!==$res_query ){
       $nb_modif=$nb_modif+1;
     
    }
     
    	}
     
    	}
     
     
    	}
     
     
    	}
     
    echo 'Vous avez modifié '.$nb_modif.' lignes';
    unset($POST);
     
    ?>
    Voilà, je sais pas pourquoi il m'affiche qu’une partie du tableau array du checkbox ?

    Cordialement

  19. #19
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    sais-tu que tu n'es pas obligée de mettre le code html dans du code php ?
    Les 2 peuvent cohabiter séparément dans un fichier ...

  20. #20
    Débutant
    Inscrit en
    Avril 2005
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 469
    Points : 106
    Points
    106
    Par défaut
    Bonjour,

    Oui je sais. Je vais les séparer dans le même fichier mais j’espère pas que ça une influence sur ce resultat de l'affichage du checkox.

    je te dis toute site après.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] Affichage par php des données mysql dans un tableau html
    Par JDP91 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 17/05/2015, 09h10
  2. Réponses: 3
    Dernier message: 19/05/2014, 08h24
  3. Réponses: 2
    Dernier message: 12/04/2014, 21h45
  4. [HTML] afficher des courbes dans un tableau html ?
    Par MAJIK_ENIS dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 10/05/2006, 15h19
  5. [MySQL] Afficher mes données dans un tableau HTML
    Par lassmust dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 02/03/2006, 11h43

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