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 :

mon array est invalide


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 18
    Points : 7
    Points
    7
    Par défaut mon array est invalide
    Bonjour,
    j'utilise Ajax pour récupérer des valeurs, (qui sont stoké dans des inputs)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    foreach ($query3 as $data3) { 
       echo '<tr>';
       echo '<input type="hidden" value="'.$data3['LGCM_ID'].'" name="cmdId[]">';
       echo '<td><input value="'.$data3['LGCM_QTE_COMMANDE'].'" name="cmdQty[]" id="cmdQty" type="text"></td>';
       echo '<td>'.$data3['PRD_POIDS'].'</td>';
       echo '<td>...</td>';
       echo '<td>'.$data3['PRD_NAME'].'</td>';
       echo '<td>'.$data3['PRD_LIBELLE'].'</td>';
       echo '<td>/</td>';
       echo '<td><input value="'.$data3['LGCM_PRIX_UNITAIRE'].'" name="cmdPrice[]" id="cmdPrice" type="text"> € HT</td>';
       echo '<td>/</td>';
       echo '</tr>';
       }
    Sur ma seconde page via Json,

    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
    $key = $_POST['cmdId']; 
    $prices = $_POST['cmdPrice']; 
    $qtys = $_POST['cmdQty'];
     
    foreach($key as $tmpItem) {
    			$item = null;
    			$item['id']       = $tmpItem;
    			$item['price']     = $prices[$tmpItem];
    			$item['qty']      = $qtys[$tmpItem];
    			$items[]          = $item;
    		}
     
    $response = $items;
     
    echo json_encode($response);
    sur ma console je reçois,

    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
    0
    	Object { id="1", price="3.46", qty="1"}
     
    id
    	"1"
     
    price
    	"3.46"
     
    qty
    	"1"
     
    1
    	Object { id="2", price="3.46", qty="1"}
     
    id
    	"2"
     
    price
    	"3.46"
     
    qty
    	"1"
     
    2
    	Object { id="3", price="3.46", qty="1"}
     
    id
    	"3"
     
    price
    	"3.46"
     
    qty
    	"1"
     
    3
    	Object { id="4", price="3.3", qty="10"}
     
    id
    	"4"
     
    price
    	"3.3"
     
    qty
    	"10"
     
    4
    	Object { id="5", price="3.75", qty="12"}
     
    id
    	"5"
     
    price
    	"3.75"
     
    qty
    	"12"
     
    5
    	Object { id="6", price=null, qty=null}
     
    id
    	"6"
     
    price
    	null
     
    qty
    	null
    Comme vous pouvez le voir, dans l'array 5, price et qty valent null,
    j'ai 6 entrées, mon array devrait finir à 5...


  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 faut debuguer par le début : que vaut $_POST['cmdId'] ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Salut,
    merci de ta réponse,

    cmdId vaut le résultat de ma requête, (mon foreach)
    $data3['LGCM_ID'];

    J'ai essayé avec une nouvelle commande, avec cmdId commençant par 25 et cmdQty et cmdPrice valent nul...
    et là j'ai pas la quantité ni le prix...

    A mon avis ça viens de mon PHP,

    mon ajax,

    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
    $(function () {
    $('#calculer').click(function(){
    $("#loader2").show();
     
    var form = $("form[name=step2]");  
    var postData = form.serialize();
     
     $.ajax({
                type: 'POST',
                dataType: 'json',
                url: 'cmd_execute_step2.php',
                data : postData,
                success: function (data) {
                $("#loader2").hide();
                $(".result_calcul").empty();
                }
              });
              $(".ajax_calcul").show();
              return false;
            });
    });

    0
    Object { id="25", price=null, qty=null}

    1
    Object { id="26", price=null, qty=null}

    2
    Object { id="27", price=null, qty=null}

    3
    Object { id="28", price=null, qty=null}

    4
    Object { id="29", price=null, qty=null}

    5
    Object { id="30", price=null, qty=null}

    6
    Object { id="31", price=null, qty=null}

    7
    Object { id="32", price=null, qty=null}

    8
    Object { id="33", price=null, qty=null}

  4. #4
    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
    cmdId vaut le résultat de ma requête, (mon foreach) $data3['LGCM_ID'];
    Tu ne dis ce que tu constates qu'il vaut ou ce qu'il devrait valoir ?

    Le but c'est de trouver a quel point tu n'as plus les bonnes données dans ta chaine de traitement.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu ne dis ce que tu constates qu'il vaut ou ce qu'il devrait valoir ?

    Le but c'est de trouver a quel point tu n'as plus les bonnes données dans ta chaine de traitement.
    Ce qu'il vaut,

    Ce qui est envoyé en POST (console),

    cmdId[] 25
    cmdId[] 26
    cmdId[] 27
    cmdId[] 28
    cmdId[] 29
    cmdId[] 30
    cmdId[] 31
    cmdId[] 32
    cmdId[] 33
    cmdPrice[] 3.05
    cmdPrice[] 3.46
    cmdPrice[] 3.46
    cmdPrice[] 550
    cmdPrice[] 3.46
    cmdPrice[] 4.3
    cmdPrice[] 3.75
    cmdPrice[] 3.3
    cmdPrice[] 4.15
    cmdQty[] 1
    cmdQty[] 1
    cmdQty[] 26
    cmdQty[] 19
    cmdQty[] 8
    cmdQty[] 5
    cmdQty[] 7
    cmdQty[] 3
    cmdQty[] 3

    Les données envoyés correspondent, mon array est incorrecte...

    merci de ton aide

  6. #6
    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
    le plus simple serait sans doute d'utiliser ta valeur $data3['LGCM_ID'] comme id des tableaux des autres inputs (ce que tu essayes visiblement d'exploiter) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       echo '<input type="hidden" value="'.$data3['LGCM_ID'].'" name="cmdId[]">';
       echo '<td><input value="'.$data3['LGCM_QTE_COMMANDE'].'" name="cmdQty['.$data3['LGCM_ID'].']" id="cmdQty" type="text"></td>';
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Celira,

    Effectivement mais pour le traitement comment je pourrais procéder ?

    merci

Discussions similaires

  1. [Pattern][Regex] vérifier que mon email est valide
    Par anitshka dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 23/05/2011, 13h03
  2. [JpGraph] jpgraph me dit que mon array est vide
    Par noxia dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 14/11/2008, 09h59
  3. Pourquoi mon code est plus lent que Arrays.sort
    Par alexis779 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/12/2006, 12h44
  4. mon poste est invisible depuis le serveur
    Par StyleXP dans le forum Administration
    Réponses: 13
    Dernier message: 08/01/2006, 22h32
  5. [Access] Mon application est détruite !!!
    Par mathias dans le forum Access
    Réponses: 4
    Dernier message: 26/06/2003, 14h14

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