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 :

Découpage de $_POST


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Par défaut Découpage de $_POST
    Bonjour à tous,
    je souhaiterai splitter la variable POST de mon formulaire afin d'obtenir une liste de nom de colonne "découpé"
    en effet pour le moment je vais avoir des choses comme
    [h4] => -1 [h6] => -1 [h13] => -1
    je souhaiterai pouvoir récupérer "4,6 et 13"
    j'avais donc pensé à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $tabpost=split("h",$_POST);
          $j=1;
          for ($i=1;$i<=count($tabpost);$i++)
          {
            if (is_int($tabpost[$i]))
            {
                     .....
    mais ca ne fonctionne pas
    Ce que je souhaite faire est-il faisable ?
    si oui comment ?
    si non, existe-t-il une colonne "cachée" de $_POST ? (du style h4 est la colonne 1, h6 est la colonne 2 etc....)


    je suis obligé de mettre le "h" devant les nombres car les colonnes avec le nombre existe déjà et le "h" defini les hidden des autres

    Merci d'avance

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    tu peux faire une boucle sur ton tableau $_POST et faire un traitement spécial quand le nom du champ commence par h ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach($_POST as $cle => $valeur)
    {
    // si champ hidden
    if(substr($cle, 0, 1) == "h")
    {
    // traitement du hidden, tu peux récupérer la valeur avec un substr aussi
    }
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Par défaut
    je ne connais pas les valeurs possibles (enfin si entre 1 et 180 000 ^^)
    et pour préciser $cle, il faut aussi connaitre la fin de celle ci non ?

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach($_POST as $cle => $valeur)
    {
    // si champ hidden
    if(substr($cle, 0, 1) == "h")
    {
    echo "Champ hidden trouvé, nom : " . $cle . " et valeur : " . $valeur. "<br/>";
    }
    }
    testes ce code et tu verras bien ce que ca fait, c'est le meilleur moyen de comprendre. Si ca ne correspond pas a ce que tu cherches c'est que j'ai du mal comprendre!

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    Pour compléter ce que koopa a proposé, $_POST est en fait un tableau, comme tu l'as dit de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_POST['h13']=1;
    $_POST['h12']=2;
    quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach ($_POST as $cle=>$valeur)
    ,

    tu vas parcourir tout le tableau post, et pour chaque élément tu auras cette
    structure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['$cle']=$valeur;
    Donc toutes tes variables POST seront parcourus et tu pourras récupérer à la fois la valeur, et la clé sans rien avoir à préciser de plus de ton coté.
    et tu auras donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ($_POST as $cle=>$valeur){
    echo $cle .":".$valeur."<br>";
    }
    //va afficher h13:1 et h12:2

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Par défaut
    oki j'ai compris le truc

    merci beaucoup ca marche

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 47
    Par défaut
    Si tu veux récupérer une liste des clés modifiées tu peux essayer ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sList = str_replace( 'h', '', implode( ',', (array_keys($_POST) ) ) );

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

Discussions similaires

  1. Découpage d'une grande image vers des textures
    Par djar dans le forum OpenGL
    Réponses: 14
    Dernier message: 26/02/2005, 19h46
  2. [JSP]découpage d'une JSP
    Par asx9 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 17/02/2005, 17h04
  3. Découpage de chaine de caractère
    Par tcharles dans le forum C++
    Réponses: 11
    Dernier message: 23/08/2004, 15h34
  4. découpage d'une chaine de caractère
    Par lamojuli dans le forum ASP
    Réponses: 4
    Dernier message: 13/05/2004, 16h00
  5. Réponses: 10
    Dernier message: 17/12/2003, 14h51

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