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 :

transmission de données


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juillet 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 59
    Points : 32
    Points
    32
    Par défaut transmission de données
    Bonjour à tous,

    j'envoie ce message sur un problème que je rencontre sur une transmission de données - à priori simple - mais que je n'arrive pas à finaliser (depuis quelques jours déjà) ... Une faute d'orthographe sur ma transmission de formulaire ??

    En résumé : je récupère des données sur deux tables (via un inner joint) et les regroupe dans un formulaire que je dois envoyer via une méthode POST.

    Jusque là tout va bien tout s'affiche dans mon formulaire de départ et lorsque je clique sur mon submit le message d'erreur de mon insert s'affiche et rien n'est transmis à la base de données ...

    Une bonne âme verrait-elle d'où vient mon problème ?

    Voici le code de mon formulaire de départ :
    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
     
    <meta charset="utf-8">
    <?php include 'header_01.php'; ?>
    	<div class="container">
    	<div class="row">
    		<div class="span3">
    		<?php
    				include 'col-left-co.php';
     
    		?>
    		</div>
     
    		<div class="span9">
    		<h2>Envoi en production</h2>
    		<form method="POST" action="../../modele/prod/traitement_production_en_cours.php">
    		<table class="table table-hover table-condensed table-responsive ">
    		<thead>
    		<tr>
    		<th>Références</th>
    		<th>Nom client</th>
    		<th>Matière</th>
    		<th>Référence Matériau</th>
    		<th>Descriptif</th>
    		<th>NB panneau(x) réf.</th>
    		<th>Quantité à produire</th>
    		</tr>
    		</thead>
    		<?php
    		include_once('../../controleur/prod/prepa_prod.php');
    		foreach($productions as $production)
    		{
    			?>
     
                            <tbody>
                                <tr>
                                    <td><strong><?php echo $production['Reference']; ?></td>
                                    <td><?php echo $production['Nom_Client']; ?></td>
    								<td><?php echo $production['Nom_Materiau']; ?></td>
    								<td><?php include_once('../../modele/connexion_DB.php');
    								$champcategorie='<select name="Ref_Materiau">' ;
    								$champcategorie.='<option value="'.'">'.'Réf. matériau'.'</option>';
    								$reponse = $bdd->query("SELECT * FROM Plaques");
    								while ($donnees = $reponse->fetch())
    								{
    								//la concatenation des champs se fait ici
    								$champcategorie.='<option value="'.$donnees['Ref_Materiau'].'">'.$donnees['Ref_Materiau'].'</option>'; 
    								}
    								$champcategorie .= '</select>';
    								echo 	$champcategorie;	
    								?></td>
    								<td><?php echo $production['Descriptif']; ?></td>
    								<td><?php echo $production['Quantite']; ?></td>
    								<td>
    								<input name="Quantite_prod" class="form-control;" id="Quantite_prod"></input>
    								</td>
                                </tr>
                            </tbody>
    				<?php
    			}?>
                        </table>
    					<h5><input type="submit" class="btn btn-success pull-right" value="envoyer en production"/></h5>
    					<a href="index.php" class="btn btn-primary">Ajouter d'autres Gammes</a>
                    </form>
                    <div class="clearfix"></div>
                </div>
     
    		</div>
    	</div>
    <?php include 'footer.php'; ?>
    voici le code de récupération des données pour insertion dans une troisième base de données :

    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
     
    <?php
        header('Refresh: 4; URL= ../../vue/prod/prod_en_cours.php');
     
     
        // Connexion à la base de données : 
    include_once('../connexion_DB.php');
     
        // Le formulaire possède t-il un champ 'nom' ?
        if (isset($_POST['Reference'], $_POST['Nom_Client']))
    	{
            // Formatage du nom de la référence : 
    		$Reference = strtoupper($_POST['Reference']);
    		$Nom_Client = strtoupper($_POST['Nom_Client']);
    		$Nom_Materiau = strtoupper($_POST['Nom_Materiau']);
    		$Ref_Materiau = strtoupper($_POST['Ref_Materiau']);
    		$Descriptif = strtoupper($_POST['Descriptif']);
    		$NB_panneaux = strtoupper($_POST['NB_panneaux']);
    		$Quantite_prod = strtoupper($_POST['Quantite_prod']);
     
            $req = $bdd->prepare("SELECT * FROM productions_lancee WHERE Reference = :Reference");
            $req->execute(array('Reference' => $Reference));
     
    			$req = $bdd->prepare("INSERT INTO productions_lancee (Reference, Nom_Client, Nom_Materiau, Ref_Materiau, Descriptif, NB_panneaux, Quantite_prod) 
    			VALUES (:Reference, :Nom_Client, :Nom_Materiau, :Ref_Materiau, :Descriptif, :NB_panneaux, :Quantite_prod)");
    			$req->execute(array(
                    'Reference' => $_POST['Reference'],
                    'Nom_Client' => $_POST['Nom_Client'],
                    'Nom_Materiau' => $_POST['Nom_Materiau'],
                    'Ref_Materiau' => $_POST['Ref_Materiau'],
                    'Descriptif' => $_POST['Descriptif'],
                    'NB_panneaux' => $_POST['NB_panneaux'],
                    'Quantite_prod' => $_POST['Quantite_prod']
                ));
     
                $message = nl2br("Le matétiau <strong>$Ref_Materiau</strong> a bien été enregistré dans la base de données.
                Voici le détail:
    
                Référence : $Reference
    			Nom : {$_POST['Ref_Materiau']}
    			
    
                Vous allez être redirigé à la page précédente...");
            }
    		else 
    	{
     
     
            $message = nl2br("Un problème est survenu votre référence n'a pas été enregistrée.
            Vous allez être redirigé à la page des productions...");
        }
     
        if(isset($message)){ 
            echo $message; 
        }
    ?>
    d'avance merci pour votre aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a que Quantite_prod et Ref_Materiau dans ton formulaire.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juillet 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 59
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Il n'y a que Quantite_prod et Ref_Materiau dans ton formulaire.
    Bonjour Sabotage,

    oui grand merci pour cet éclairage.
    Après un peu plus de recherche j'ai fini par trouver ce qui me manquait - mes données non déclarées dans le formulaire pour le nouveau formulaire .

    Du coup j'ai modifié comme suit :

    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
     
    <meta charset="utf-8">
    <?php include 'header_01.php'; ?>
    	<div class="container">
    	<div class="row">
    		<div class="span3">
    		<?php
    				include 'col-left-co.php';
     
    		?>
    		</div>
     
    		<div class="span9">
    		<h2>Envoi en production</h2>
    		<form method="POST" action="../../modele/prod/traitement_production_en_cours.php">
    		<table class="table table-hover table-condensed table-responsive ">
    		<thead>
    		<tr>
    		<th>Semaine</th>
    		<th>Références</th>
    		<th>Nom client</th>
    		<th>Matière</th>
    		<th>Référence Matériau</th>
    		<th>Descriptif</th>
    		<th>NB panneau(x)</th>
    		<th>Quantité à produire</th>
    		</tr>
    		</thead>
    		<?php
    		include_once('../../controleur/prod/prepa_prod.php');
    		foreach($productions as $production)
    		{
    			?>
     
                            <tbody>
                                <tr>
    							<td>
    								<input type="week" id="Semaine" value="Semaine" min="W01" max="W52" required style="width:180px; height:30px;">
    								</select></td>
                                    <td><strong><?php echo $production['Reference']; ?> <input type="hidden" name="Reference" value="<?php echo "".$production['Reference']."" ?>"></input></td>
                                    <td><?php echo $production['Nom_Client']; ?> <input type="hidden" name="Nom_Client" value="<?php echo "".$production['Nom_Client']."" ?>"></input></td>
    								<td><?php echo $production['Nom_Materiau']; ?><input type="hidden" name="Nom_Materiau" value="<?php echo "".$production['Nom_Materiau']."" ?>"></input></td>
    								<td><?php include_once('../../modele/connexion_DB.php');
    								$champcategorie='<select name="Ref_Materiau" style="width:100px; height:30px;">' ;
    								$champcategorie.='<option value="'.'">'.'Réf. matériau'.'</option>';
    								$reponse = $bdd->query("SELECT * FROM Plaques");
    								while ($donnees = $reponse->fetch())
    								{
    								//la concatenation des champs se fait ici
    								$champcategorie.='<option value="'.$donnees['Ref_Materiau'].'">'.$donnees['Ref_Materiau'].'</option>'; 
    								}
    								$champcategorie .= '</select>';
    								echo 	$champcategorie;	
    								?></td>
    								<td><?php echo $production['Descriptif']; ?><input type="hidden" name="Descriptif" value="<?php echo "".$production['Descriptif']."" ?>"></input></td>
    								<td><?php echo $production['NB_panneaux']; ?><input type="hidden" name="NB_panneaux" value="<?php echo "".$production['NB_panneaux']."" ?>"></input></td>
    								<td>
    								<input name="Quantite_prod" class="form-control;" id="Quantite_prod" style="width:90px; height:30px;"></input>
    								</td>
                                </tr>
                            </tbody>
    				<?php
     
    			}?>
                        </table>
    					<h5><input type="submit" class="btn btn-success pull-right" value="envoyer en production"/></h5>
    					<a href="index.php" class="btn btn-primary">Ajouter d'autres Gammes</a>
                    </form>
     
                    <div class="clearfix"></div>
                </div>
     
    		</div>
    	</div>
    <?php include 'footer.php'; ?>
    et maintenant ça marche

    Merci pour ton intérêt. Bonne soirée.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juillet 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 59
    Points : 32
    Points
    32
    Par défaut
    Bonjour à tous,

    je reviens sur mon problème de formulaire car j'ai voulu rajouté une check box sur ma page de préparation de production.
    L'idée "simple" est que mon formulaire figure une ligne correspondant à un élément que je veux envoyer en production (les produits référencés comportent plusieurs éléments qui peuvent être fabriqués séparément). Chaque ligne de mon tableau réprésente un élément et la checkbox permet de sélectionner les éléments que je veux réellement produire.
    J'espère que jusque là tout est clair.

    Voici le code de ma page de préparation de production :

    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
    78
    79
     
    <meta charset="utf-8">
    <?php include 'header_01.php'; ?>
    	<div class="container">
    	<div class="row">
    		<div class="span3">
    		<?php
    				include 'col-left-co.php';
     
    		?>
    		</div>
     
    		<div class="span9">
    		<h2>Envoi en production</h2>
    		<form method="POST" action="../../modele/prod/traitement_production_en_cours.php">
    		<table class="table table-hover table-condensed table-responsive">
    		<thead>
    		<tr>
    		<th>Semaine</th>
    		<th>Références</th>
    		<th>Nom client</th>
    		<th>Matière</th>
    		<th>Référence Matériau</th>
    		<th>Descriptif</th>
    		<th>NB panneau(x)</th>
    		<th>NB exemplaires</th>
    		<th>Envoyer en production</th>
    		</tr>
    		</thead>
    		<?php
    		include_once('../../controleur/prod/prepa_prod.php');
    		foreach($productions as $production)
    		{
    			?>
     
                            <tbody>
                                <tr>
    							<td>
    								<input type="week" id="Semaine" name="Semaine" min="2018-W01" max="2018-W52" style="width:180px; height:30px;">
    								</select></td>
                                    <td><strong><?php echo $production['Reference']; ?> <input type="hidden" name="Reference" value="<?php echo "".$production['Reference']."" ?>"></input></td>
                                    <td><?php echo $production['Nom_Client']; ?> <input type="hidden" name="Nom_Client" value="<?php echo "".$production['Nom_Client']."" ?>"></input></td>
    								<td><?php echo $production['Nom_Materiau']; ?><input type="hidden" name="Nom_Materiau" value="<?php echo "".$production['Nom_Materiau']."" ?>"></input></td>
    								<td><?php include_once('../../modele/connexion_DB.php');
    								$champcategorie='<select name="Ref_Materiau" style="width:100px; height:30px;">' ;
    								$champcategorie.='<option value="'.'">'.'Réf. matériau'.'</option>';
    								$reponse = $bdd->query("SELECT * FROM Plaques");
    								while ($donnees = $reponse->fetch())
    								{
    								//la concatenation des champs se fait ici
    								$champcategorie.='<option value="'.$donnees['Ref_Materiau'].'">'.$donnees['Ref_Materiau'].'</option>'; 
    								}
    								$champcategorie .= '</select>';
    								echo 	$champcategorie;	
    								?></td>
    								<td><?php echo $production['Descriptif']; ?><input type="hidden" name="Descriptif" value="<?php echo "".$production['Descriptif']."" ?>"></input></td>
    								<td><?php echo $production['NB_panneaux']; ?><input type="hidden" name="NB_panneaux" value="<?php echo "".$production['NB_panneaux']."" ?>"></input></td>
    								<td>
    								<input name="Quantite_prod" class="form-control;" id="Quantite_prod" style="width:90px; height:30px;"></input>
    								</td>
    								<td>
    								 <input type="checkbox" class="form-control" name="enregistrer[]" value='".$production['Reference']."'></input>
    								</td>
                                </tr>
                            </tbody>
    				<?php
     
    			}?>
                        </table>
    					<h5><input type="submit" class="btn btn-success pull-right" value="envoyer en production"/></h5>
    					<a href="index.php" class="btn btn-primary">Ajouter d'autres Gammes</a>
                    </form>
     
                    <div class="clearfix"></div>
                </div>
     
    		</div>
    	</div>
    <?php include 'footer.php'; ?>
    et voici ma page de traitement pour inscrire l'élément sélectionner dans une table de production :

    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
     
    <?php
        header('Refresh: 4; URL= ../../vue/prod/prod_en_cours.php');
     
     
        // Connexion à la base de données : 
    include_once('../connexion_DB.php');
     
        // La checkbox a-t-elle été cochée ?
    	$enregistrer = $_POST['enregistrer'];
    		if (sizeof($enregistrer)==0)
    		{
    			$erreur = 'Vous devez cocher la case pour envoyer votre référence en production';
    			echo $erreur;
     
    			header('Refresh: 25; URL= ../../vue/prod/prepa_prod.php');
    			}
    		else
    		{
    			foreach ($enregistrer as $valeur)
    			{
    				// Les champs obligatoires ont-ils été renseignés ?
    				if (isset($_POST['Reference'], $_POST['Nom_Client']))
    				{
    					// Formatage des infos de la référence :
    					$Semaine = trim($_POST['Semaine']);		
    					$Reference = strtoupper($_POST['Reference']);
    					$Nom_Client = strtoupper($_POST['Nom_Client']);
    					$Nom_Materiau = strtoupper($_POST['Nom_Materiau']);
    					$Ref_Materiau = strtoupper($_POST['Ref_Materiau']);
    					$Descriptif = strtoupper($_POST['Descriptif']);
    					$NB_panneaux = strtoupper($_POST['NB_panneaux']);
    					$Quantite_prod = strtoupper($_POST['Quantite_prod']);
    					$enregistrer = $_POST['enregistrer'];
     
    					$req = $bdd->prepare("SELECT * FROM productions_lancee WHERE Reference = :Reference");
    					$req->execute(array('Reference' => $Reference));
     
    						$req = $bdd->prepare("INSERT INTO productions_lancee (Semaine, Reference, Nom_Client, Nom_Materiau, Ref_Materiau, Descriptif, NB_panneaux, Quantite_prod) 
    						VALUES (:Semaine, :Reference, :Nom_Client, :Nom_Materiau, :Ref_Materiau, :Descriptif, :NB_panneaux, :Quantite_prod)");
    						$req->execute(array(
    							'Semaine' => $_POST['Semaine'],
    							'Reference' => $_POST['Reference'],
    							'Nom_Client' => $_POST['Nom_Client'],
    							'Nom_Materiau' => $_POST['Nom_Materiau'],
    							'Ref_Materiau' => $_POST['Ref_Materiau'],
    							'Descriptif' => $_POST['Descriptif'],
    							'NB_panneaux' => $_POST['NB_panneaux'],
    							'Quantite_prod' => $_POST['Quantite_prod']
    						));
     
    					$message = nl2br("Le matétiau <strong>$Reference</strong> a bien été enregistré dans la base de données.
    					Voici le détail:
    
    					Référence : $Reference
    					Nom : {$_POST['Ref_Materiau']}
    					
    
    					Vous allez être redirigé à la page précédente...");
    				}
    			}
    		}
     
     
    ?>
    je ne dois pas être loin de ma solution mais là je bloque ... j'obtiens une erreur lorsque j'envoie ma réf.vers la page de traitement - et mon élément n'est pas enregistrer dans ma base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ( ! ) Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: 
    General error: 1366 Incorrect integer value: '' for column 'Quantite_prod' at row 1' in 
    traitement_production_en_cours.php on line 48
    lorsque je fais un var dump($req) sur ma page de traitement il m'affiche les données suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    C:\wamp\www\Git\Production_Planning\Production\modele\prod\traitement_production_en_courscop.php:39:
    object(PDOStatement)[3]
      public 'queryString' => string 'INSERT INTO productions_lancee (Semaine, Reference, Nom_Client, Nom_Materiau, Ref_Materiau, Descriptif, NB_panneaux, Quantite_prod) 
    						VALUES (:Semaine, :Reference, :Nom_Client, :Nom_Materiau, :Ref_Materiau, :Descriptif, :NB_panneaux, :Quantite_prod)' (length=255)
    Quelqu'un saurait-il d'où vient mon erreur ??

    Merci d'avance pour votre aide.

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ta case à cocher est bien construite, forme un tableau et contient des valeurs uniques. Par contre, le reste du formulaire a des noms simples, ce qui veut dire que tu vas avoir autant de champs Reference qu'il y a de lignes dans ton tableau. Donc tu ne vas récupérer les données que d'une seule ligne (la dernière du tableau, parce que c'est le dernier qui parle qui a raison ) indifféremment des cases que tu as coché.

    Il faut donc que tu transformes le reste des champs en tableaux, que tu peux indexer avec une valeur unique (typiquement ce que tu as mis comme valeur dans la case à cocher)
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="week" name="Semaine[<?=$production['Reference'] ?>]" min="2018-W01" max="2018-W52" style="width:180px; height:30px;">
    que tu vas ensuite exploiter par quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $enregistrer = $_POST['enregistrer'];
    //..
    foreach ($enregistrer as $reference)
    {
        // ...
        $semaine = $_POST['Semaine'][$reference];
    Au passage, pour débuger une requête pdo je te conseille d'utiliser plutôt PDOStatement::debugDumpParams pour avoir à la fois la requête et les paramètres envoyés

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juillet 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 59
    Points : 32
    Points
    32
    Par défaut
    Bonsoir et merci Celira pour ton intervention et ton intérêt.

    je viens de voir ton message. Je ne suis pas encore sûr de ma compréhension du message que tu envoies ...

    En gros, il faut que je créer une variable dans le champs "name" de mon input qui va "englober" toutes les données ... est-ce bien cela ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .. // name="Semaine[<?=$production['Reference'] ?>]" ../
    Cette variable sera ensuite récupérée dans mon fichier de traitement via une classe du genre "get_enregistrer" appelée dans ce même fichier de traitement et développée toujours dans cette même page de traitement via un foreach "$enregistrer as $reference". Ok jusque-là ?

    Merci pour ta confirmation - je regarde ce soir et je peux revenir vers toi le cas échéant ?

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

    À chaque ligne de la table HTML correspond un résultat (ligne) de la requête SQL (via le foreach...).

    1- Chaque input/select doit avoir un name avec des crochets : name="xxxxxxx[]".On récupérera alors un array.

    2- L'id auto-incrementé est unique. On va s'en servir comme index : name="xxxxxxx[<?=$production['id'] ?>].

    3- case à cocher (checkbox)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="choix[<?=$production['id'] ?>]" value="<?=$production['id'] ?>" />
    Il faut savoir que SEULES celles qui sont cochées renvoient une valeur.
    Donc, on peut s'en servir pour identifier les lignes à récupérer/enregistrer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if( !empty($_POST['choix']) )
    {
       foreach( $_POST['choix'] as $id ) // $id est l'identifiant de la ligne
       {
          $nom = $_POST['nom'][$id];
          $machin = $_POST['machin'][$id];
    ....

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juillet 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 59
    Points : 32
    Points
    32
    Par défaut
    Bonsoir et merci Jreaux pour ton intérêt et ta réponse.
    Je m'excuse de cette réponse très tardive mais j'ai réellement eu une semaine de malade au boulot ... Je vais essayer ce que tu me suggères et reviendrais vers toi pour te rendre compte demain dans la matinée.

    Merci encore donc et excellente soirée.

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juillet 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 59
    Points : 32
    Points
    32
    Par défaut
    Bonjour Jreaux,

    j'ai mis à jour mes pages comme indiqué dans ton précédant message à savoir, tout d'abord ma page de récupération des données initiales :

    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
     
    <meta charset="utf-8">
    <?php
    include_once('../../DBFactory.php');
     
    function get_prepa_prod()
    {
        $db = DBFactory::getMysqlConnexion();
    	$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); // On emet une alerte a chaque fois qu'une requête a echoue.
     
     
        $req = $db->prepare('SELECT * FROM prepa_prod
    	INNER JOIN Panneaux 
    	ON prepa_prod.Reference = panneaux.Reference
    	WHERE panneaux.Reference = prepa_prod.Reference ORDER BY panneaux.Nom_Materiau
    	'); 
        $req->execute();
        $productions = $req->fetchAll();
     
     
        return $productions;
    }
    ?>
    une fois mes données récupérées, je les appelle dans une page prépa_prod qui contient un formulaire de préparation de mes productions - que voici :
    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
     
    <meta charset="utf-8">
     
    <?php
     
     
     
    include_once('../../modele/prod/get_prepa_prod.php');
    $productions = get_prepa_prod(0, 50);
     
     
    foreach($productions as $prod => $production)
    {
    	$productions[$prod]['Id'] = htmlspecialchars($production['Id']);
    	$productions[$prod]['Reference'] = htmlspecialchars($production['Reference']);
    	$productions[$prod]['Nom_Client'] = htmlspecialchars($production['Nom_Client']);
    }
     
    // On affiche la page (vue)
    include_once('../../vue/prod/prepa_prod.php');
     
    ?>
    puis dans la page "vue" appelée du même nom :


    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
    78
    <meta charset="utf-8">
    <?php include 'header_01.php'; ?>
    	<div class="container">
    	<div class="row">
    		<div class="span3">
    		<?php
    				include 'col-left-co.php';
     
    		?>
    		</div>
     
    		<div class="span9">
    		<h2>Envoi en production</h2>
    		<form method="POST" action="../../modele/prod/traitement_production_en_cours.php">
    		<table class="table table-hover table-condensed table-responsive">
    		<thead>
    		<tr>
    		<th>Semaine</th>
    		<th>Références</th>
    		<th>Nom client</th>
    		<th>Matière</th>
    		<th>Référence Matériau</th>
    		<th>Descriptif</th>
    		<th>NB panneau(x)</th>
    		<th>NB exemplaires</th>
    		<th>Envoyer en production</th>
    		</tr>
    		</thead>
    		<?php
    		include_once('../../controleur/prod/prepa_prod.php');
    		foreach($productions as $production)
    		{
    			?>
     
                            <tbody>
                                <tr>
    							<td>
    								<input type="week" name="Semaine[<?=$production['Id'] ?>" min="2018-W01" max="2018-W52" style="width:180px; height:30px;">
    								</select></td>
                                    <td><strong><?php echo $production['Reference']; ?> <input type="hidden" name="Reference[<?=$production['Id'] ?>"</input></td>
                                    <td><?php echo $production['Nom_Client']; ?> <input type="hidden" name="Nom_Client[<?=$production['Id'] ?>"</input></td>
    								<td><?php echo $production['Nom_Materiau']; ?><input type="hidden" name="Nom_Materiau[<?=$production['Id'] ?>"></input></td>
    								<td><?php include_once('../../modele/connexion_DB.php');
    								$champcategorie='<select name="Ref_Materiau" style="width:100px; height:30px;">' ;
    								$champcategorie.='<option value="'.'">'.'Réf. matériau'.'</option>';
    								$reponse = $bdd->query("SELECT * FROM Plaques");
    								while ($donnees = $reponse->fetch())
    								{
    								//la concatenation des champs se fait ici
    								$champcategorie.='<option value="'.$donnees['Ref_Materiau'].'">'.$donnees['Ref_Materiau'].'</option>'; 
    								}
    								$champcategorie .= '</select>';
    								echo 	$champcategorie;	
    								?><input type="hidden" name="Ref_Materiau[<?=$production['Id'] ?>"</input></td></td>
    								<td><?php echo $production['Descriptif']; ?><input type="hidden" name="Descriptif[<?=$production['Id'] ?>"</input></td>
    								<td><?php echo $production['NB_panneaux']; ?><input type="hidden" name="NB_panneaux[<?=$production['Id'] ?>"</input></td>
    								<td>
    								<input name="Quantite_prod[<?=$production['Id'] ?>" class="form-control;" style="width:90px; height:30px;"></input>
    								</td>
    								<td>
    								 <input type="checkbox" class="form-control" name="choix[<?=$production['Id'] ?>" value="<?=$production['Id'] ?>" /></input>
    								</td>
                                </tr>
                            </tbody>
    				<?php
     
    			}?>
                        </table>
    					<h5><input type="submit" class="btn btn-success pull-right" value="envoyer en production"/></h5>
    					<a href="index.php" class="btn btn-primary">Ajouter d'autres Gammes</a>
                    </form>
     
                    <div class="clearfix"></div>
                </div>
     
    		</div>
    	</div>
    <?php include 'footer.php'; ?>
    lorsque mon formulaire est renseigné, que je selectionne une checkbox et envoie l'Id sélectionner en "production", j'appelle une page de traitement que voici :

    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
        header('Refresh: 4; URL= ../../vue/prod/prod_en_cours.php');
     
     
        // Connexion à la base de données : 
    include_once('../connexion_DB.php');
     
        // La checkbox a-telle été cochée ?
    if( !empty($_POST['choix']) )
    {
       foreach( $_POST['choix'] as $Id ) // $référence est l'identifiant de la ligne
       {
                    $Semaine = $_POST['Semaine'][$Id];
                    $Reference = $_POST['Reference'][$Id];
                    $Nom_Client = $_POST['Nom_Client'][$Id];
                    $Nom_Materiau = $_POST['Nom_Materiau'][$Id];
    				$Ref_Materiau = $_POST['Ref_Materiau'][$Id];
                    $Descriptif = $_POST['Descriptif'][$Id];
                    $NB_panneaux = $_POST['NB_panneaux'][$Id];
                    $Quantite_prod = $_POST['Quantite_prod'][$Id];
     
            $req = $bdd->prepare("SELECT * FROM productions_lancee WHERE Id = :Reference");
            $req->execute(array('Id' => $Id));
     
    			$req = $bdd->prepare("INSERT INTO productions_lancee (Semaine, Reference, Nom_Client, Nom_Materiau, Ref_Materiau, Descriptif, NB_panneaux, Quantite_prod) 
    			VALUES (:Semaine, :Reference, :Nom_Client, :Nom_Materiau, :Ref_Materiau, :Descriptif, :NB_panneaux, :Quantite_prod)");
    			$req->execute(array(
                    $Semaine = $_POST['Semaine'][$Id],
                    $Reference = $_POST['Reference'][$Id],
                    $Nom_Client = $_POST['Nom_Client'][$Id],
                    $Nom_Materiau = $_POST['Nom_Materiau'][$Id],
                    $Ref_Materiau = $_POST['Ref_Materiau'][$Id],
                    $Descriptif = $_POST['Descriptif'][$Id],
                    $NB_panneaux = $_POST['NB_panneaux'][$Id],
                    $Quantite_prod = $_POST['Quantite_prod'][$Id]
                ));
     
     
                $message = nl2br("La référence <strong>$Reference</strong> a bien été enregistré dans la base de données.
                Voici le détail:
    
                Référence : $Reference
    			Nom : {$_POST['Nom_Client'][$Reference]}
    			
    
                Vous allez être redirigé à la page de production...");
    	}
     
    	}
     
     
    ?>
    mais rien ne s'enregistre dans ma base de données, par contre je suis bien rerouté vers ma page de production lancée.

    J'ai testé un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req->debugDumpParams();
    et voilà ce que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL: [47] SELECT * FROM productions_lancee WHERE Id = :Id Params: 1 Key: Name: [3] :Id paramno=-1 name=[3] ":Id" is_param=1 param_type=2
    je crois comprendre qu'il y a un problème de correspondance entre ma variable Id envoyée et ce qui est reçu par la base de données mais je dois dire que je n'ai rien trouvé de probant pour y remédier - code sql 47 ...

    Saurais-tu me dire, le cas échéant, ou je me trompe dans mes scripts ?

    Par avance merci.

  10. #10
    Invité
    Invité(e)
    Par défaut
    1- Remplace déjà partout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <meta charset="utf-8">
     
    <?php
    ...
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    header('Content-type:text/html; charset=UTF-8');	// encodage UTF-8
    2- dans la "vue" : as-tu vérifié si le code HTML généré ("Ctrl" + "U") est correct ?
    MONTRE 1 ou 2 <tr>.

    3- page de traitement :
    var_dump($_POST['choix']) donne-t-il bien les résultats escompté (array des ids des cases cochées) ?

    4-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        header('Refresh: 4; URL= ../../vue/prod/prod_en_cours.php');
    Ca, c'est vraiment n'importe quoi !!
    Il faut faire une redirection APRES TRAITEMENT, avec header('Location:...').
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        header('Location:../../vue/prod/prod_en_cours.php');
    5-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            $req = $bdd->prepare("SELECT * FROM productions_lancee WHERE Id = :Reference");
            $req->execute(array('Id' => $Id));
    Ca aussi : POURQUOI faire un SELECT ici ???

    6-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    			$req = $bdd->prepare("INSERT INTO productions_lancee (Semaine, Reference, Nom_Client, Nom_Materiau, Ref_Materiau, Descriptif, NB_panneaux, Quantite_prod) 
    			VALUES (:Semaine, :Reference, :Nom_Client, :Nom_Materiau, :Ref_Materiau, :Descriptif, :NB_panneaux, :Quantite_prod)");
    			$req->execute(array(
                    $Semaine = $_POST['Semaine'][$Id],
                    $Reference = $_POST['Reference'][$Id],
                    $Nom_Client = $_POST['Nom_Client'][$Id],
                    $Nom_Materiau = $_POST['Nom_Materiau'][$Id],
                    $Ref_Materiau = $_POST['Ref_Materiau'][$Id],
                    $Descriptif = $_POST['Descriptif'][$Id],
                    $NB_panneaux = $_POST['NB_panneaux'][$Id],
                    $Quantite_prod = $_POST['Quantite_prod'][$Id]
                ));
    NON : tu n'as pas compris comment fonctionne une requête préparé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
    	$sql = "INSERT INTO productions_lancee 
    		(Semaine, Reference, Nom_Client, Nom_Materiau, Ref_Materiau, Descriptif, NB_panneaux, Quantite_prod) 
    		VALUES 
    		(:Semaine, :Reference, :Nom_Client, :Nom_Materiau, :Ref_Materiau, :Descriptif, :NB_panneaux, :Quantite_prod)";
    	$req = $bdd->prepare( $sql );
    	$req->execute( array(
                    ':Semaine' => $_POST['Semaine'][$Id],
                    ':Reference' => $_POST['Reference'][$Id],
                    ':Nom_Client' => $_POST['Nom_Client'][$Id],
                    ':Nom_Materiau' => $_POST['Nom_Materiau'][$Id],
                    ':Ref_Materiau' => $_POST['Ref_Materiau'][$Id],
                    ':Descriptif' => $_POST['Descriptif'][$Id],
                    ':NB_panneaux' => $_POST['NB_panneaux'][$Id],
                    ':Quantite_prod' => $_POST['Quantite_prod'][$Id]
    	) );
    Dernière modification par Invité ; 18/07/2018 à 12h37.

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juillet 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 59
    Points : 32
    Points
    32
    Par défaut
    Merci Jreaux pour ce retour, j'ai corrigé en suivant tes suggestions.

    Voici j'ai également procédé les tests du ctrl + U et du Var_dump.

    Voici ce que j'ai en démarrage sur ma page prepa_prod (pour info : 5 éléments présent dans la table et la première checkbox 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
    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
     
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />	
    	<title>Production Planning 01</title>
    	<link rel="stylesheet" href="css/bootstrap.css" />
    	<link rel="stylesheet" href="css/bootstrap-responsive.css" />
    	<link rel="stylesheet" href="css/style.css" />
    	<link rel="stylesheet" href="css/font-awesome.css" />
    </head>
    <body>
     
    <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="navbar-inner">
            <div class="container">
                <button class="btn btn-navbar" data-target=".nav-collapse" data-toggle="collapse" type="button">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="brand" >
    				<div class="span4">
    					mercredi 18 juillet 2018 - Semaine : 29					</a>
    				</div>
                <div class="nav-collapse collapse">
                    <form class="navbar-form form-search pull-right">
                        <input id="Search" name="Search" type="text" class="input-medium search-query">
                        <button type="submit" class="btn">Rechercher</button>
                    </form>
                </div>
            </div>
        </div>
    </div>	<div class="container">
    	<div class="row">
    		<div class="span3">
    		<meta charset="utf-8">
        <div class="well">
            <ul class="nav nav-list">
    			<li class="nav-header">Administration</li>
                <li>
                    <a href="inscription.php">Créer un accès</a>
                </li>
                <li>
                    <a href="#">deconnexion</a>
                </li>
            </ul>
        </div>
     
    	<div class="well">
            <ul class="nav nav-list">
                <li class="nav-header">Gammes</li>
                <li>
                    <a href="index.php">Voir les Gammes</a>
                </li>
                <li>
                    <a href="ajout_gamme.php">Ajouter une Gamme</a>
                </li>
            </ul>
        </div>
     
        <div class="well">
            <ul class="nav nav-list">
                <li class="nav-header">Stock</li>
                <li>
                    <a href="stock.php">Voir les Stocks</a>
                </li>
    			<li>
                    <a href="commande.php">Réception de matière</a>
                </li>
                <li>
                    <a href="ajout_matieres.php">Ajouter une matière</a>
                </li>
            </ul>
        </div>
     
    	    <div class="well">
            <ul class="nav nav-list">
                <li class="nav-header">Production</li>
    			<li>
                    <a href="prepa_prod.php">Préparer une production</a>
                </li>
                <li>
                    <a href="prod_en_cours.php">Voir les production en cours</a>
                </li>
            </ul>
        </div>
     
    		</div>
     
    		<div class="span9">
    		<h2>Envoi en production</h2>
    		<form method="POST" action="../../modele/prod/traitement_production_en_cours.php">
    		<table class="table table-hover table-condensed table-responsive">
    		<thead>
    		<tr>
    		<th>Semaine</th>
    		<th>Références</th>
    		<th>Nom client</th>
    		<th>Matière</th>
    		<th>Référence Matériau</th>
    		<th>Descriptif</th>
    		<th>NB panneau(x)</th>
    		<th>NB exemplaires</th>
    		<th>Envoyer en production</th>
    		</tr>
    		</thead>
     
                            <tbody>
                                <tr>
    							<td>
    								<input type="week" name="Semaine[1" min="2018-W01" max="2018-W52" style="width:180px; height:30px;">
    								</select></td>
                                    <td><strong>G7575 <input type="hidden" name="Reference[1"</input></td>
                                    <td>Diager <input type="hidden" name="Nom_Client[1"</input></td>
    								<td>Forex 30/10ème<input type="hidden" name="Nom_Materiau[1"></input></td>
    								<td><select name="Ref_Materiau" style="width:100px; height:30px;"><option value="">Réf. matériau</option><option value="Forex 5/10ème - 1400 x 1000">Forex 5/10ème - 1400 x 1000</option><option value="Forex 3/10ème - 1400 x 1000">Forex 3/10ème - 1400 x 1000</option><option value="Forex 8/10ème - 1400 x 1000">Forex 8/10ème - 1400 x 1000</option><option value="PVC Blanc 3/10ème - 1400 x 1000">PVC Blanc 3/10ème - 1400 x 1000</option><option value="PVC Blanc 30/10ème - 1400 x 1000">PVC Blanc 30/10ème - 1400 x 1000</option><option value="PET Incolore 30/10ème - 2500 x 2000">PET Incolore 30/10ème - 2500 x 2000</option></select><input type="hidden" name="Ref_Materiau[1"</input></td></td>
    								<td>Fronton<input type="hidden" name="Descriptif[1"</input></td>
    								<td>2<input type="hidden" name="NB_panneaux[1"</input></td>
    								<td>
    								<input name="Quantite_prod[1" class="form-control;" style="width:90px; height:30px;"></input>
    								</td>
    								<td>
    								 <input type="checkbox" class="form-control" name="choix[1" value="1" /></input>
    								</td>
                                </tr>
                            </tbody>
     
                            <tbody>
                                <tr>
    							<td>
    								<input type="week" name="Semaine[4" min="2018-W01" max="2018-W52" style="width:180px; height:30px;">
    								</select></td>
                                    <td><strong>G7575 <input type="hidden" name="Reference[4"</input></td>
                                    <td>Diager <input type="hidden" name="Nom_Client[4"</input></td>
    								<td>Forex 8/10ème<input type="hidden" name="Nom_Materiau[4"></input></td>
    								<td><select name="Ref_Materiau" style="width:100px; height:30px;"><option value="">Réf. matériau</option><option value="Forex 5/10ème - 1400 x 1000">Forex 5/10ème - 1400 x 1000</option><option value="Forex 3/10ème - 1400 x 1000">Forex 3/10ème - 1400 x 1000</option><option value="Forex 8/10ème - 1400 x 1000">Forex 8/10ème - 1400 x 1000</option><option value="PVC Blanc 3/10ème - 1400 x 1000">PVC Blanc 3/10ème - 1400 x 1000</option><option value="PVC Blanc 30/10ème - 1400 x 1000">PVC Blanc 30/10ème - 1400 x 1000</option><option value="PET Incolore 30/10ème - 2500 x 2000">PET Incolore 30/10ème - 2500 x 2000</option></select><input type="hidden" name="Ref_Materiau[4"</input></td></td>
    								<td>Joue<input type="hidden" name="Descriptif[4"</input></td>
    								<td>2<input type="hidden" name="NB_panneaux[4"</input></td>
    								<td>
    								<input name="Quantite_prod[4" class="form-control;" style="width:90px; height:30px;"></input>
    								</td>
    								<td>
    								 <input type="checkbox" class="form-control" name="choix[4" value="4" /></input>
    								</td>
                                </tr>
                            </tbody>
     
                            <tbody>
                                <tr>
    							<td>
    								<input type="week" name="Semaine[2" min="2018-W01" max="2018-W52" style="width:180px; height:30px;">
    								</select></td>
                                    <td><strong>G7578 <input type="hidden" name="Reference[2"</input></td>
                                    <td>Ducros <input type="hidden" name="Nom_Client[2"</input></td>
    								<td>Forex 8/10ème<input type="hidden" name="Nom_Materiau[2"></input></td>
    								<td><select name="Ref_Materiau" style="width:100px; height:30px;"><option value="">Réf. matériau</option><option value="Forex 5/10ème - 1400 x 1000">Forex 5/10ème - 1400 x 1000</option><option value="Forex 3/10ème - 1400 x 1000">Forex 3/10ème - 1400 x 1000</option><option value="Forex 8/10ème - 1400 x 1000">Forex 8/10ème - 1400 x 1000</option><option value="PVC Blanc 3/10ème - 1400 x 1000">PVC Blanc 3/10ème - 1400 x 1000</option><option value="PVC Blanc 30/10ème - 1400 x 1000">PVC Blanc 30/10ème - 1400 x 1000</option><option value="PET Incolore 30/10ème - 2500 x 2000">PET Incolore 30/10ème - 2500 x 2000</option></select><input type="hidden" name="Ref_Materiau[2"</input></td></td>
    								<td>Fronton<input type="hidden" name="Descriptif[2"</input></td>
    								<td>1<input type="hidden" name="NB_panneaux[2"</input></td>
    								<td>
    								<input name="Quantite_prod[2" class="form-control;" style="width:90px; height:30px;"></input>
    								</td>
    								<td>
    								 <input type="checkbox" class="form-control" name="choix[2" value="2" /></input>
    								</td>
                                </tr>
                            </tbody>
     
                            <tbody>
                                <tr>
    							<td>
    								<input type="week" name="Semaine[3" min="2018-W01" max="2018-W52" style="width:180px; height:30px;">
    								</select></td>
                                    <td><strong>G7587 <input type="hidden" name="Reference[3"</input></td>
                                    <td>Panzani <input type="hidden" name="Nom_Client[3"</input></td>
    								<td>PET Incolore 3/10ème<input type="hidden" name="Nom_Materiau[3"></input></td>
    								<td><select name="Ref_Materiau" style="width:100px; height:30px;"><option value="">Réf. matériau</option><option value="Forex 5/10ème - 1400 x 1000">Forex 5/10ème - 1400 x 1000</option><option value="Forex 3/10ème - 1400 x 1000">Forex 3/10ème - 1400 x 1000</option><option value="Forex 8/10ème - 1400 x 1000">Forex 8/10ème - 1400 x 1000</option><option value="PVC Blanc 3/10ème - 1400 x 1000">PVC Blanc 3/10ème - 1400 x 1000</option><option value="PVC Blanc 30/10ème - 1400 x 1000">PVC Blanc 30/10ème - 1400 x 1000</option><option value="PET Incolore 30/10ème - 2500 x 2000">PET Incolore 30/10ème - 2500 x 2000</option></select><input type="hidden" name="Ref_Materiau[3"</input></td></td>
    								<td>Joue<input type="hidden" name="Descriptif[3"</input></td>
    								<td>2<input type="hidden" name="NB_panneaux[3"</input></td>
    								<td>
    								<input name="Quantite_prod[3" class="form-control;" style="width:90px; height:30px;"></input>
    								</td>
    								<td>
    								 <input type="checkbox" class="form-control" name="choix[3" value="3" /></input>
    								</td>
                                </tr>
                            </tbody>
     
                            <tbody>
                                <tr>
    							<td>
    								<input type="week" name="Semaine[5" min="2018-W01" max="2018-W52" style="width:180px; height:30px;">
    								</select></td>
                                    <td><strong>G7575 <input type="hidden" name="Reference[5"</input></td>
                                    <td>Diager <input type="hidden" name="Nom_Client[5"</input></td>
    								<td>PVC Blanc 30/10ème<input type="hidden" name="Nom_Materiau[5"></input></td>
    								<td><select name="Ref_Materiau" style="width:100px; height:30px;"><option value="">Réf. matériau</option><option value="Forex 5/10ème - 1400 x 1000">Forex 5/10ème - 1400 x 1000</option><option value="Forex 3/10ème - 1400 x 1000">Forex 3/10ème - 1400 x 1000</option><option value="Forex 8/10ème - 1400 x 1000">Forex 8/10ème - 1400 x 1000</option><option value="PVC Blanc 3/10ème - 1400 x 1000">PVC Blanc 3/10ème - 1400 x 1000</option><option value="PVC Blanc 30/10ème - 1400 x 1000">PVC Blanc 30/10ème - 1400 x 1000</option><option value="PET Incolore 30/10ème - 2500 x 2000">PET Incolore 30/10ème - 2500 x 2000</option></select><input type="hidden" name="Ref_Materiau[5"</input></td></td>
    								<td>Fronton<input type="hidden" name="Descriptif[5"</input></td>
    								<td>5<input type="hidden" name="NB_panneaux[5"</input></td>
    								<td>
    								<input name="Quantite_prod[5" class="form-control;" style="width:90px; height:30px;"></input>
    								</td>
    								<td>
    								 <input type="checkbox" class="form-control" name="choix[5" value="5" /></input>
    								</td>
                                </tr>
                            </tbody>
    				                    </table>
    					<h5><input type="submit" class="btn btn-success pull-right" value="envoyer en production"/></h5>
    					<a href="index.php" class="btn btn-primary">Ajouter d'autres Gammes</a>
                    </form>
     
                    <div class="clearfix"></div>
                </div>
     
    		</div>
    	</div>
    	<hr />
     
    	<footer id="footer" class="vspace20">
    		<div class="container">
    			<div class="row">
    				<div class="span4 offset1">
    				</div> 
     
    				<div class="span4">
    				</div>
     
    				<div class="span2">
    				</div>
    			</div>
     
    			<div class="row">
    				<div class="span4">
    				</div>
    			</div>
    		</div>
    	</footer>	
    	<script src="../js/jquery-1.10.0.min.js"></script>
    	<script src="../js/bootstrap.js"></script>
    </body>
    </html>
    Jusque-là, tout semble aller pour le mieux.

    Je vais ensuite dans ma page de traitement et je fais :

    - un "var_dump($_POST);" qui me renvoit :

    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
    C:\wamp\www\Git\Production_Planning\Production\modele\prod\traitement_production_en_cours.php:8:
    array (size=42)
      'Semaine_1' => string '2018-W29' (length=8)
      'Reference_1' => string '' (length=0)
      'Nom_Client_1' => string '' (length=0)
      'Nom_Materiau_1' => string '' (length=0)
      'Ref_Materiau' => string '' (length=0)
      'Ref_Materiau_1' => string '' (length=0)
      'Descriptif_1' => string '' (length=0)
      'NB_panneaux_1' => string '' (length=0)
      'Quantite_prod_1' => string '50' (length=2)
      'choix_1' => string '1' (length=1)
      'Semaine_4' => string '' (length=0)
      'Reference_4' => string '' (length=0)
      'Nom_Client_4' => string '' (length=0)
      'Nom_Materiau_4' => string '' (length=0)
      'Ref_Materiau_4' => string '' (length=0)
      'Descriptif_4' => string '' (length=0)
      'NB_panneaux_4' => string '' (length=0)
      'Quantite_prod_4' => string '' (length=0)
      'Semaine_2' => string '' (length=0)
      'Reference_2' => string '' (length=0)
      'Nom_Client_2' => string '' (length=0)
      'Nom_Materiau_2' => string '' (length=0)
      'Ref_Materiau_2' => string '' (length=0)
      'Descriptif_2' => string '' (length=0)
      'NB_panneaux_2' => string '' (length=0)
      'Quantite_prod_2' => string '' (length=0)
      'Semaine_3' => string '' (length=0)
      'Reference_3' => string '' (length=0)
      'Nom_Client_3' => string '' (length=0)
      'Nom_Materiau_3' => string '' (length=0)
      'Ref_Materiau_3' => string '' (length=0)
      'Descriptif_3' => string '' (length=0)
      'NB_panneaux_3' => string '' (length=0)
      'Quantite_prod_3' => string '' (length=0)
      'Semaine_5' => string '' (length=0)
      'Reference_5' => string '' (length=0)
      'Nom_Client_5' => string '' (length=0)
      'Nom_Materiau_5' => string '' (length=0)
      'Ref_Materiau_5' => string '' (length=0)
      'Descriptif_5' => string '' (length=0)
      'NB_panneaux_5' => string '' (length=0)
      'Quantite_prod_5' => string '' (length=0)
    - un "var_dump($_POST['choix']);" qui me renvoit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\wamp\www\Git\Production_Planning\Production\modele\prod\traitement_production_en_cours.php:8:null
    J'ai l'impression que la variable n'est pas reconnue ...

  12. #12
    Invité
    Invité(e)
    Par défaut
    PREMIERE constatation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    								<input type="week" name="Semaine[1" min="2018-W01" max="2018-W52" style="width:180px; height:30px;">
    name="Semaine[1" : on voit qu'il manque un crochet (partout) !

    Les conseils que j'ai donnés (afficher la source générée, var_dump,...) : ça fait partie du débogage de base.
    Débogage de base que tu PEUX et tu DOIS faire toi-même.

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juillet 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 59
    Points : 32
    Points
    32
    Par défaut
    Oui, effectivement, ....

    Je regarde tout ça et pourrais revenir vers toi le cas échéant ?

    Merci pour ton aide jusque là en tout les cas.

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juillet 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 59
    Points : 32
    Points
    32
    Par défaut
    Bonjour Jreaux, bonjour à tous,

    j'ai résolu une grande partie de mon problème de transmission de données via mon formulaire. Néanmoins j'ai maintenant deux petits problèmes avec les données que je reçois :

    1 - j'ai un champ Référence Matériau dans mon formulaire, un menu déroulant qui me donne la liste des matières par dimension de plaque que je peux utiliser pour ma production. ce dernier est bien pris en compte lors de la transmission de données mais ne renvoit qu'une lettre ... ?

    2 - je transmet bien mes données d'une table à l'autre mais j'ai un problème - mineur - d'indentation et mes données affichées dans moin nouveau formulaire apparaissent entre crochets "[valeur]".

    Quelqu'un saurait-il m'éclairer sur ces deux points ?

    voici mon code de 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
    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
     
    <form method="POST" action="../../modele/prod/traitement_production_en_cours.php">
    		<table class="table table-hover table-condensed table-responsive">
    		<thead>
    		<tr>
    		<th>Semaine</th>
    		<th>Références</th>
    		<th>Nom client</th>
    		<th>Matière</th>
    		<th>Référence Matériau</th>
    		<th>Descriptif</th>
    		<th>NB panneau(x) réf.</th>
    		<th>Quantité à produire</th>
    		</tr>
    		</thead>
    		<?php
    		include_once('../../controleur/prod/prepa_prod.php');
    		foreach($productions as $production)
    		{
    			?>
     
                            <tbody>
                                <tr>
    							<td>
    								<input type="week" name="Semaine[<?=$production['Id']?>]" min="2018-W01" max="2018-W52" style="width:120px; height:30px;">
    								</select></td>
                                    <td><strong><?php echo $production['Reference']; ?> <input type="hidden" name="Reference[<?=$production['Id'] ?>]" value="[<?=$production['Reference'] ?>]" </input></td>
                                    <td><?php echo $production['Nom_Client']; ?> <input type="hidden" name="Nom_Client[<?=$production['Id']?>]" value="[<?=$production['Nom_Client'] ?>]" </input></td>
    								<td><?php echo $production['Nom_Materiau']; ?><input type="hidden" name="Nom_Materiau[<?=$production['Id']?>]"  value="[<?=$production['Nom_Materiau'] ?>]" </input></td>
    								<td><?php include_once('../../modele/connexion_DB.php');
    								$champcategorie='<select name="Ref_Materiau" style="width:100px; height:30px;>' ;
    								$champcategorie.='<option value="'.'">'.'Réf. matériau'.'</option>';
    								$reponse = $bdd->query("SELECT * FROM Plaques");
    								while ($donnees = $reponse->fetch())
    								{
    								//la concatenation des champs se fait ici
    								$champcategorie.='<option value="'.$donnees['Ref_Materiau'].'">'.$donnees['Ref_Materiau'].'</option>'; 
    								}
    								$champcategorie .= '</select>';
    								echo 	$champcategorie;	
    								?>
    								<td><?php echo $production['Descriptif']; ?><input type="hidden" name="Descriptif[<?=$production['Id']?>]"  value="[<?=$production['Descriptif'] ?>]" </input></td>
    								<td><?php echo $production['NB_panneaux']; ?><input type="hidden" name="NB_panneaux[<?=$production['Id']?>]"  value="[<?=$production['NB_panneaux'] ?>]" </input></td>
    								<td>
    								<input name="Quantite_prod[<?=$production['Id']?>]" class="form-control;" style="width:90px; height:30px;"></input>
    								</td>
    								<td>
    								 <input type="checkbox" class="form-control" name="choix[<?=$production['Id']?>]" value="<?=$production['Id'] ?>" /></input>
    								</td>
                                </tr>
                            </tbody>
    				<?php
     
    			}?>
                        </table>
    					<h5><input type="submit" class="btn btn-success pull-right" value="envoyer en production"/></h5>
    					<a href="index.php" class="btn btn-primary">Ajouter d'autres Gammes</a>
                    </form>

    voici ma page de traitement :

    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
     
    <?php
       header('Location:../../vue/prod/prod_en_cours.php');
     
     
        // Connexion à la base de données : 
    include_once('../connexion_DB.php');
     
        // Le formulaire possède t-il un champ 'nom' ?
    if( !empty($_POST['choix']) )
    {
       foreach( $_POST['choix'] as $Id ) // $id est l'identifiant de la ligne
       {
            // Formatage des infos de la référence :
    		$Semaine = trim($_POST['Semaine'][$Id]);		
    		$Reference = trim($_POST['Reference'][$Id]);
    		$Nom_Client = trim($_POST['Nom_Client'][$Id]);
    		$Nom_Materiau = trim($_POST['Nom_Materiau'][$Id]);
    		$Ref_Materiau = trim($_POST['Ref_Materiau'][$Id]);
    		$Descriptif = trim($_POST['Descriptif'][$Id]);
    		$NB_panneaux = trim($_POST['NB_panneaux'][$Id]);
    		$Quantite_prod = trim($_POST['Quantite_prod'][$Id]);
     
             $sql = "INSERT INTO productions_lancee 
    		(Semaine, Reference, Nom_Client, Nom_Materiau, Ref_Materiau, Descriptif, NB_panneaux, Quantite_prod) 
    		VALUES 
    		(:Semaine, :Reference, :Nom_Client, :Nom_Materiau, :Ref_Materiau, :Descriptif, :NB_panneaux, :Quantite_prod)";
    		var_dump($sql);
    	$req = $bdd->prepare( $sql );
    	$req->execute( array(
                    'Semaine' => $_POST['Semaine'][$Id],
                    'Reference' => $_POST['Reference'][$Id],
                    'Nom_Client' => $_POST['Nom_Client'][$Id],
                    'Nom_Materiau' => $_POST['Nom_Materiau'][$Id],
                    'Ref_Materiau' => $_POST['Ref_Materiau'][$Id],
                    'Descriptif' => $_POST['Descriptif'][$Id],
                    'NB_panneaux' => $_POST['NB_panneaux'][$Id],
                    'Quantite_prod' => $_POST['Quantite_prod'][$Id]
                ));
     
     
    	}
    	            $message = nl2br("Le matériau <strong>$Reference</strong> a bien été envoyé en production.
                Voici le détail:
    
                Référence : $Reference
    			
    
                Vous allez être redirigé à la page précédente...");
    			var_dump($req);
    	}
     
    	else
    	{echo"Vous n'avez pas sélectionner de référence";
    	}
     
     
    ?>

    Par avance merci pour votre aide.

  15. #15
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Je ne sais pas si c'est la cause de ton problème mais tu as

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Semaine = trim($_POST['Semaine'][$Id]);

    Puis tu as
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    'Semaine' => $_POST['Semaine'][$Id]

    Alors pourquoi n'écris tu pas
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    'Semaine' => $Semaine

    et ceci est valable pour toutes les informations.

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

    1- La PREMIERE chose à faire est de regarder le "code source généré" : "Ctrl" + "U" (ou clic droit -> "code source de la page")

    -> Regarde si ton formulaire est correctement construit (contenu des <option>,....).

    2- La balise <input> est auto-fermante.
    C'est-à-dire qu'on n'écrit pas <input ......></input> mais <input ..... />.

    3- Et comme dit badaze, si tu crées des variables, c'est pour t'en servir :
    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
       foreach( $_POST['choix'] as $Id ) // $id est l'identifiant de la ligne
       {
            // Formatage des infos de la référence :
    		$Semaine = trim($_POST['Semaine'][$Id]);		
    		$Reference = trim($_POST['Reference'][$Id]);
    		$Nom_Client = trim($_POST['Nom_Client'][$Id]);
    		$Nom_Materiau = trim($_POST['Nom_Materiau'][$Id]);
    		$Ref_Materiau = trim($_POST['Ref_Materiau'][$Id]);
    		$Descriptif = trim($_POST['Descriptif'][$Id]);
    		$NB_panneaux = trim($_POST['NB_panneaux'][$Id]);
    		$Quantite_prod = trim($_POST['Quantite_prod'][$Id]);
     
             $sql = "INSERT INTO productions_lancee 
    		(Semaine, Reference, Nom_Client, Nom_Materiau, Ref_Materiau, Descriptif, NB_panneaux, Quantite_prod) 
    		VALUES 
    		(:Semaine, :Reference, :Nom_Client, :Nom_Materiau, :Ref_Materiau, :Descriptif, :NB_panneaux, :Quantite_prod)";
    	//	var_dump($sql);
    		$req = $bdd->prepare( $sql );
    		$req->execute( array(
                    ':Semaine' => $Semaine,
                    ':Reference' => $Reference,
                    ':Nom_Client' => $Nom_Client,
                    ':Nom_Materiau' => $Nom_Materiau,
                    ':Ref_Materiau' => $Ref_Materiau,
                    ':Descriptif' => $Descriptif,
                    ':NB_panneaux' => $NB_panneaux,
                    ':Quantite_prod' => $Quantite_prod
                ));
    	}

  17. #17
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par mrc_AO Voir le message
    mes données affichées dans mon nouveau formulaire apparaissent entre crochets "[valeur]".
    Normal : tu les écris entre crochets
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    	<input type="hidden" name="Reference[<?=$production['Id'] ?>]" value="[<?=$production['Reference'] ?>]" </input>
    Retire les crochets en trop (et te l'a indiqué jreaux, ferme correctement tes inputs )
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="Reference[<?=$production['Id'] ?>]" value="<?=$production['Reference'] ?>" />

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juillet 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 59
    Points : 32
    Points
    32
    Par défaut
    Bonjour Messieurs et grand merci pour votre intérêt.

    Celira, je viens de voir ton message et grand merci pour cette information . Je procède dans l'instant pour régler cette histoire de crochet - je pense toutefois que mon problème avec la balise select va demeurer ... Je vous tiens au courant.

    Grand merci encore.

    Rebonjour Celira, Jreaux, Badaze,

    voilà mon problème de crochets résolu. Mais j'ai toujours le même soucis avec mon menu déroulant <select> qui me renvoit une lettre au lieu de la valeur choisie dans la liste ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <td><?php include_once('../../modele/connexion_DB.php');
    $champcategorie='<select name="Ref_Materiau" style="width:100px; height:30px;>' ;
    $champcategorie.='<option value="'.'">'.'Réf. matériau'.'</option>';
    $reponse = $bdd->query("SELECT * FROM Plaques");
    while ($donnees = $reponse->fetch())
    {
    //la concatenation des champs se fait ici
    $champcategorie.='<option value="'.$donnees['Ref_Materiau'].'">'.$donnees['Ref_Materiau'].'</option>'; 
    }
    $champcategorie .= '</select>';
    echo 	$champcategorie;	
    ?>
    Faut-il que je définisse une variable dans un "hidden input" dont la valeur serait égale à ma variable $champcategorie - j'ai bien essayer de reprendre directement cette dernière dans le dit "hidden input" mais cela ne fonctionnait pas ...

    Pour confirmation, le ctrl + U de la page me renvoi l'ensemble des choix possibles de mon menu déroulant ...

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <td><select name="Ref_Materiau" style="width:100px; height:30px;>
    <option value="">Réf. matériau</option>
    <option value="Forex 5/10ème - 1400 x 1000">Forex 5/10ème - 1400 x 1000</option>
    <option value="Forex 3/10ème - 1400 x 1000">Forex 3/10ème - 1400 x 1000</option>
    <option value="Forex 8/10ème - 1400 x 1000">Forex 8/10ème - 1400 x 1000</option>
    <option value="PVC Blanc 3/10ème - 1400 x 1000">PVC Blanc 3/10ème - 1400 x 1000</option>
    <option value="PVC Blanc 30/10ème - 1400 x 1000">PVC Blanc 30/10ème - 1400 x 1000</option>
    <option value="PET Incolore 30/10ème - 2500 x 2000">PET Incolore 30/10ème - 2500 x 2000</option>
    </select>

  19. #19
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ah je sais ! ton select n'est pas un tableau ! Tous tes champs ont des champs de la forme name="Descriptif[<?=$production['Id']?>]", mais pas ton select.

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juillet 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 59
    Points : 32
    Points
    32
    Par défaut
    Ok merci Celira,

    donc mon problème pourrait être résolu avec un "hidden input" posé après le menu select - je présume tout au moins ... Quelque chose du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <td><?php include_once('../../modele/connexion_DB.php');
    $champcategorie='<select name="Ref_Materiau" style="width:100px; height:30px;>' ;
    $champcategorie.='<option value="'.'">'.'Réf. matériau'.'</option>';
    $reponse = $bdd->query("SELECT * FROM Plaques");
    while ($donnees = $reponse->fetch())
    {
    //concatenation des champs
    $champcategorie.='<option value="'.$donnees['Ref_Materiau'].'">'.$donnees['Ref_Materiau'].'</option>'; 
    }
    $champcategorie .= '</select>';
    echo 	$champcategorie;	
    ?><input type="hidden" name="Ref_Materiau[<?=$production['Id']?>]"  value="<?= $donnees['Ref_Materiau'] ?>"/></td>

    Mon soucis est que j'ai fait plusieurs tests et que je ne vois pas comment aborder le problème de la valeur à donner à cet hidden input que je dois transmettre ...

    <input type="hidden" name="Ref_Materiau[<?=$production['Id']?>]" value="<?= $donnees['Ref_Materiau'] ?>"/></td>

    => cette valeur me renvoie un "undefined offset" en message d'erreur lorsque j'envoie mes données ...

    <input type="hidden" name="Ref_Materiau[<?=$production['Id']?>]" value="<?= $champcategorie['Ref_Materiau'] ?>"/></td>

    => cette valeur me renvoie un "Illegal string offset" en message d'erreur sur l'affichage de la page avant même que j'envoie mon formulaire ...

    Aurais-tu - ou quelqu'un - une idée là-dessus ?

    Par avance merci.

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

Discussions similaires

  1. Problème de transmission de données via socket
    Par UrFour dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 05/06/2017, 22h30
  2. Tk : problème de transmission de données entre widgets
    Par HRS dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 24/04/2012, 14h15
  3. Problème sur base de données
    Par Frédéric.S dans le forum Langage SQL
    Réponses: 7
    Dernier message: 09/08/2009, 15h37
  4. Problème de transmission de données AS2 <=> PHP
    Par Sh1v3r dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 01/05/2009, 17h07
  5. 2 Problèmes sur Base de Donnée
    Par jockyboss777 dans le forum VB.NET
    Réponses: 18
    Dernier message: 20/10/2007, 00h11

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