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 :

[PHP-JS] récupération de plusieurs champs texte ayant un nom "propre"


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Par défaut [PHP-JS] récupération de plusieurs champs texte ayant un nom "propre"
    bonjour à tous,
    alors essayons d'être concis et précis:
    dans mon formulaire:

    je créé plusieurs champs texte en javascript via un bouton "ajouter un champ", ses champs ont un nom qui leur est propre :

    ch.setAttribute('name','mes_ch[]');

    dans mon pgm:

    je veux récupérer les textes entrés dans les champs :

    $result = $_POST['mes_ch'];
    foreach($result as $text)
    {
    if $text =..........
    }

    mais j'ai une erreur, il ne connait pas mes_ch...
    et la je bloque depuis un moment et la patience n'est pas ma plus grande qualité...!
    merci

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Citation Envoyé par Dodielapatate
    ch.setAttribute('name','mes_ch[]');
    T'es sûr que c'est ça ?

    Citation Envoyé par Dodielapatate
    mais j'ai une erreur, il ne connait pas mes_ch...
    Tu peux être plus précis ? Y a un message d'erreur ? Il ne rentre pas dans la boucle ? etc.


    Tu peux tester 2 trucs :
    1. Poster ton formulaire en GET (si c'est possible) et nous indiquer l'URL que tu obtiens ? Tu dois avoir des ...&mes_ch[]=titi&mes_ch[]=toto&... pour que ton truc marche.
    2. Faire un print_r($_POST) pour voir tout ce que contient la variable $_POST. Ca te permettra de voir s'il récupère des mes_ch.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Par défaut
    quand je fait un print_r($_POST['mes_ch']);
    j'ai

    Array ( [0] => aaa )
    Warning: Invalid argument supplied for foreach() in c:\program files\easyphp1-8\www\pgm\donnees_demande.php on line 41

    PS:je peux être plus précisE

  4. #4
    Membre émérite Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

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

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Par défaut
    Hello,

    Si tu crée plusieurs champ texte et que tu lis la source de ta page (clic droit - afficher la source), quels sont les noms de tes champs ?

    A ta place je me debrouillerais pour que le nom du champ texte en javascript soit un truc du style champ_texte_1 champ_texte_2 champ_texte_3
    Ensuite je stockes dans une variable en champ caché (hidden) le nombre de champ texte que j'ai.

    Ensuite je fais une boucle du style de 0 a mon_nombre_de_champ ($mnc)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for ($x=0;$x<$_POST['mnc'];$x++) {
     
          if ($_POST['champ_texte_'.$x]) {
          echo 'Champ texte ' . $x . ' a renvoyé : ' . $_POST['champ_texte_'.$x];
          }
    }

    Il n'y a que les boites de selection avec l'attribue multiple et les boites d'options qui renvoient des tableaux...

    @+
    cadou

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Par défaut
    alors j'ai trouvé ça et ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    foreach($_POST['mes_ch'] as $champ)
    {$a = $a.$champ." ";}
    je récupère mes champs les uns à la suite des autre, ce qu'il me faut.

    mon nouveau soucis est de sauter cette étape si un champ supérieur (name="req" ici) est vide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if ($_POST['req'] != "")
    {
    foreach($_POST['mes_ch'] as $champ)
    	{$a = $a.$champ." ";}
    }
    else
    {
    foreach ($_POST['requete'] as $selecreq)
    	{$b = $b.$selecreq." ";}
    }
    mais il cherche quand meme les données dans mes_ch et me met donc une erreur :
    Invalid argument supplied for foreach()

  6. #6
    Membre émérite Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

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

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Par défaut
    Et ceci ne serait t-il pas meilleur ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    if ($_POST['req'])
    Ce qui teste si la variable req existe, alors que ce que tu teste c'est si la variable req n'est pas egale a ""

    Sinon ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    if ($_POST['req'] > 1)
    Ce qui ici teste si req contient plus de 1 caracteres

    @+
    cadou

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/08/2007, 16h49
  2. Réponses: 3
    Dernier message: 26/08/2007, 15h35
  3. Réponses: 17
    Dernier message: 02/03/2007, 09h46
  4. Autocompletion sur plusieur champs texte
    Par Tempotpo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/07/2006, 15h20
  5. [FLASH MX] Une scrollbar pour plusieurs champs texte
    Par ffmlgraphics dans le forum Flash
    Réponses: 1
    Dernier message: 08/08/2005, 16h45

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