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 :

récupére plusieurs tableau de $_POST


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut récupére plusieurs tableau de $_POST
    Bonsoir, je m'en remet à vous car je ne trouve pas la solution de mon problème :

    J'ai un formulaire qui affiche des enregistrements d'une table, et y ajoute à chaque enregistrement une case à cocher, un select et enfin 2 textbox, voici un bout de code :

    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
     
     
    <html>
    <table>
    	<td><center>Véhicule(s)</center></td>
    				<td><center>Conducteur</center></td>
    				<td><center>Km départ</center></td>
    				<td><center>Km arrivée</center></td>
    				</tr>
    				 <?php do { ?>
    				<tr>
    					<td><INPUT type="checkbox" name="vl_depart[]" value="<?php echo $row_Recordset_vehicule['id_vehicule']; ?>"><?php echo $row_Recordset_vehicule['indicatif_vl']; ?></td>
    					<td>
    					<select name="conducteur[]" id="conducteur">
    							<option value=""></option>
            <?php
    								do {
    									?>
            <option value="<?php echo $row_Recordset_personnel['id_user']?>"><?php echo $row_Recordset_personnel['nom']?> <?php echo $row_Recordset_personnel['prenom']?></option>
            <?php
    								} while ( $row_Recordset_personnel = mysql_fetch_assoc ( $Recordset_personnel ) );
    								$rows = mysql_num_rows ( $Recordset_personnel );
    								if ($rows > 0) {
    									mysql_data_seek ( $Recordset_personnel, 0 );
    									$row_Recordset_personnel = mysql_fetch_assoc ( $Recordset_personnel );
    								}
    								?>
          </select>
          </td>
    					<td><input type="text" name="km_depart[]" id="km_depart"></td>
    					<td><input type="text" name="km_arrive[]" id="km_arrive"></td>
    				</tr>
    				<?php } while ($row_Recordset_vehicule = mysql_fetch_assoc($Recordset_vehicule)); ?>
    </table>
    </html>
    et ensuite je reçois ces données dans ma page php de traitement, et c'est la que ça se complique.
    Je sais comment récupérer ces variables qui sont dans un tableau, mais je ne sais pas comment faire pour les parcourir afin de les enregistrer dans une table, voici ce que j'ai fait :

    la partie traitement des données reçu (ex : si non vide et si un autre textbox $numero_cta est présent):
    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
    $numero_cta = "129034";
    //==============================================================================
    //TRAITEMENT DES VEHICULES AU DEPARTS
    //==============================================================================
     
    // bouclons sur les checkbox des libelle de vehicules
    if (!empty($_POST['vl_depart']) && !empty($numero_cta)) {
    	$tabvehicules = $_POST['vl_depart'];
    }else{
    	$message[] = "Vous devez selectionner au moins un véhicule au départ";
    }
     
    // bouclons sur les textbox des conducteurs
    if (!empty($_POST['conducteur']) && !empty($numero_cta)) {
    	$tabconducteur = $_POST['conducteur'];
    	$tabconducteur = array_values(array_filter($tabconducteur)); //supprime les vides et reindex le tab
    }else{
    	$message[] = "Vous devez renseigner le conducteur du véhicule";
    }
     
    // bouclons sur les kilométres départ
    if (!empty($_POST['km_depart']) && !empty($numero_cta)) {
    	$tab_km_depart = $_POST['km_depart'];
    	$tab_km_depart = array_values(array_filter($tab_km_depart)); //supprime les vides et reindex le tab
    }else{
    	$message[] = "Vous devez renseigner les kilométres au départ";
    }
     
    // bouclons sur les kilométres retour
    if (!empty($_POST['km_arrive']) && !empty($numero_cta)) {
    	$tab_km_arrive = $_POST['km_arrive'];
    	$tab_km_arrive = array_values(array_filter($tab_km_arrive)); //supprime les vides et reindex le tab
    }else{
    	$message[] = "Vous devez renseigner les kilométres au retour";
    }
    et la ça se complique je souhaiterais les ajouter dans ma table mais je ne sais pas comment faire pour que la requête s’exécute à chaque vl_depart coché avec son conducteur, ses km_depart, ses km_arrive :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    foreach($tabvehicules as $cle1 => $vehicules) {
    		$insert_vehicules = "INSERT INTO rapports_vehicules 
    				(id_rap_vl_id, id_rap_vl_libelle, id_rap_vl_cond, rap_vl_km_depart, rap_vl_km_retour) 
    				VALUES
    				('".$numero_cta."', '".$vehicules."', '".$tabconducteur."', '".$tab_km_depart."', '".$tab_km_arrive."');";
    		$Result2 = mysql_query($insert_vehicules, $dbprotect) or die(mysql_error());
    	}?>
    Dans mon cas ce code me crée 64 enregistrement au lancement de la requête alors que je n'ai coché que 1 véhicule !!!

    D'avance merci du temps que vous prenez pour lire mon post.

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Billets dans le blog
    17
    Par défaut
    pouvez vous ajouter un print_r() de votre tableau post, pour vérifier qu'il n'y a pas un soucis dans votre formulaire concernant votre variable "vl_depart" ?
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

Discussions similaires

  1. [Tableaux] Trier plusieurs tableau
    Par amoiraud dans le forum Langage
    Réponses: 1
    Dernier message: 01/04/2009, 11h25
  2. Débutant Requête pour récupéré plusieurs Max
    Par Missy33 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 18/09/2008, 10h59
  3. [DOM] ajout suppression de ligne dans plusieurs tableau
    Par Invité dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 27/06/2008, 16h33
  4. Réponses: 1
    Dernier message: 14/03/2008, 07h32
  5. Réponses: 3
    Dernier message: 25/08/2007, 09h45

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