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 :

Dysfonctionnement de boucle for


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2018
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mai 2018
    Messages : 57
    Points : 28
    Points
    28
    Par défaut Dysfonctionnement de boucle for
    Bonjour,

    Je suis bloquer sur une boucle for pour dupliquer un nombre défini via $_post.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for ($i=1; $i<$nbs; $i++) {
    $shipping->skybillValue->productCode = $_POST['choix'];            
    $shipping->skybillValue->shipDate = date('c');          
    $shipping->skybillValue->shipHour = date('G');
    $shipping->skybillValue->weight = $_POST['poids'.$i.''];
    $shipping->skybillValue->service = '0';                 
    $shipping->skybillValue->objectType = $_POST['march'];  
    $shipping->skybillValue->bulkNumber = $nbs_f; 
    }
    Je ne vois pas comment défini un skybillValue1, skybillValue2, skybillValue3,...
    j'ai essayer :
    $shipping->skybillValue[$i]->service = '0';.
    $shipping->skybillValue." ".$i->service = '0';.
    mais rien ne marche.

    le but étant de dupliquer pour ensuite ajouter dans la page traitement.php le nombre de doublon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public function __construct()
        {
            //$this->esdValue = new EsdValue();
            $this->headerValue = new HeaderValue();
            $this->shipperValue = new ShipperValue();
            $this->customerValue = new CustomerValue();
            $this->recipientValue = new RecipientValue();
            $this->refValue = new refValue();
            $this->skybillValue = new SkybillValue();
            $this->skybillParamsValue = new SkybillParamsValue();
        }
    Merci pour votre aide.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for ($i = 1; ...) {
        $this->{'skybillValue' . $i}->productCode = ...;
        ...
    }
    Mais c'est très mauvais, il vaut mieux passer par un tableau.

    Ton $_POST non plus n'a pas l'air très bon, tu peux également utiliser des tableaux dans ton formulaire HTML :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="poids[]">

    Ou pour encore plus structurer la data :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="items[0][poids]">
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2018
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mai 2018
    Messages : 57
    Points : 28
    Points
    28
    Par défaut
    Merci Séb. cela fonctionne.
    Cependant pour ma function __construct(), je peux aussi faire un for ou il y a une meilleur façon de le faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public function __construct()
        {
            //$this->esdValue = new EsdValue();
            $this->headerValue = new HeaderValue();
            $this->shipperValue = new ShipperValue();
            $this->customerValue = new CustomerValue();
            $this->recipientValue = new RecipientValue();
            $this->refValue = new refValue();
    // For à partir d'ici 
            $this->skybillValue = new SkybillValue();
    //fin for
            $this->skybillParamsValue = new SkybillParamsValue();
        }
    Merci,

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Oui même principe.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2018
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mai 2018
    Messages : 57
    Points : 28
    Points
    28
    Par défaut
    Je ne comprends pas, j'ai encore un souci sur le fichier.
    la boucle ce fait en fin de fichier et il y a encore skybillValue sans la prise en compte du $i.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     for ($i=1; $i<$nbs; $i++) {
    $shipping->{'skybillValue' . $i}->productCode = $_POST['choix'];           
    $shipping->{'skybillValue' . $i}->shipDate = date('c');          
    $shipping->{'skybillValue' . $i}->shipHour = date('G');
    $shipping->{'skybillValue' . $i}->weight = $_POST['poids'.$i.''];
    $shipping->{'skybillValue' . $i}->service = '0';
    }
    $shipping->skybillParamsValue->numberOFParcel = $_POST['nbs'];
    $shipping->skybillParamsValue->multiParcel = $parcel;
    Résultat print_r
    [skybillValue] => SkybillValue Object ( [bulkNumber] => [codCurrency] => EUR [codValue] => [content1] => [content2] => [content3] => [content4] => [content5] => [customsCurrency] => [customsValue] => [evtCode] => DC [insuredCurrency] => [insuredValue] => [objectType] => [portCurrency] => [portValue] => [productCode] => [service] => [shipDate] => [shipHour] => [skybillRank] => [weight] => [weightUnit] => KGM ) [skybillParamsValue] => SkybillParamsValue Object ( [mode] => PDF [numberOFParcel] => 4 [multiParcel] => Y ) [password] => [skybillValue1] => stdClass Object ( [productCode] => 44 [shipDate] => 2021-11-20T17:08:11+01:00 [shipHour] => 17 [weight] => 10 [service] => 0 [objectType] => MAR [bulkNumber] => 3 [skybillRank] => 1 [height] => 20 [length] => 10 [width] => 10 ) [skybillValue2] => stdClass Object ( [productCode] => 44 [shipDate] => 2021-11-20T17:08:11+01:00 [shipHour] => 17 [weight] => 15 [service] => 0 [objectType] => MAR [bulkNumber] => 3 [skybillRank] => 2 [height] => 20 [length] => 20 [width] => 7 ) [skybillValue3] => stdClass Object ( [productCode] => 44 [shipDate] => 2021-11-20T17:08:11+01:00 [shipHour] => 17 [weight] => 20 [service] => 0 [objectType] => MAR [bulkNumber] => 3 [skybillRank] => 3 [height] => 32 [length] => 25 [width] => 18 ) )
    La je ne comprends pas ce qui ce passe.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2018
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mai 2018
    Messages : 57
    Points : 28
    Points
    28
    Par défaut
    Je viens de trouver la solution.

  7. #7
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 175
    Points
    17 175
    Par défaut
    Merci de la partager, cela serait sympathique pour la communauté.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ActionScript] Problème avec boucle 'FOR'
    Par BnA dans le forum Flash
    Réponses: 7
    Dernier message: 02/11/2006, 09h26
  2. [VBS][Débutant] Problème syntaxe boucle For
    Par _alex_ dans le forum VBScript
    Réponses: 2
    Dernier message: 26/07/2006, 14h26
  3. problème dans boucle for de lecture de fichier ini
    Par chourmo dans le forum Delphi
    Réponses: 3
    Dernier message: 06/07/2006, 09h31
  4. [batch]inventaire réseau-problème de boucle "for"
    Par mathieu_r dans le forum Windows
    Réponses: 1
    Dernier message: 23/06/2006, 20h17
  5. [Eval] Problème de boucle for sur des tableaux
    Par battle_benny dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/01/2006, 23h55

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