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 :

boucle et récupération var dans $_POST [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 152
    Points : 87
    Points
    87
    Par défaut boucle et récupération var dans $_POST
    Bonjour,

    Je génère plusieurs champs de formulaire avec une boucle de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for(i=1; i<$nb; $i++){
    <input name="cla_nom<?php echo $i;?>" class="input-medium" type="text" value="<?php echo $cla_nom; ?>"> 
                        <input name="cla_age<?php echo $i;?>" class="input-medium" style="width:20px;" type="text" value="<?php echo $cla_age; ?>" size="3" maxlength="3"> ans
    }
    Cela fonctionne parfaitement mais quand je souhaite récupérer mes variables pour les tester je ne sais pas comment faire
    j'ai essayé ça mais sans succès
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for($i=1; $i<=$totalRows_Rs_animal; $i++){
    		//$clanom='cla_nom'.$i; j'ai essayé avec $_POST['$clanom'] mais ça marche pas
    		$cla_nom=$_POST['cla_nom.$i'];
    		$cla_age=$_POST['cla_age.$i'];
    		echo $cla_nom;
    		if(empty($cla_nom)){ $Erreur.=" nom animal ".$i."," ;}
    		if(strlen($cla_nom)>30){ $Erreur.=" nom animal".$i."," ;}
    		if(empty($c1a_age) ||(strlen($c1a_age)>2) || !is_numeric($cla_age) ){$Erreur.= " &acirc;ge animal ".$i.",";}
    	}
    Comment puis-je faire pour tester $cla_nom=$_POST['cla_nom.$i'];?

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Salut,
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for(i=1; i<$nb; $i++){
    echo '<input name="clas_nom[]" type="text"/>';}
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($_POST['clas_nom'] as $value){echo $_POST['clas_nom'];
    ....
    }

  3. #3
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour,
    Je comprends mal ta question ,
    Tu dis :

    Je génère plusieurs champs de formulaire avec une boucle de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for(i=1; i<$nb; $i++){
    <input name="cla_nom<?php echo $i;?>" class="input-medium" type="text" value="<?php echo $cla_nom; ?>"> 
    <input name="cla_age<?php echo $i;?>" class="input-medium" style="width:20px;" type="text" value="<?php echo $cla_age; ?>" size="3" maxlength="3"> ans
    }
    Cela fonctionne parfaitement
    Ah bon
    tu est dans une boucle PHP je supposes ... et tu généres du HTML sans echo en plus tu y a imbriqué du PHP

    Explique un peut ce début , ça va nous aider ...

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 152
    Points : 87
    Points
    87
    Par défaut
    en fait, je fais appelle à une requête qui récupère le nombre d'animaux de ma base.
    Tant que j'ai des résultats, j'affiche un input qui affiche le nom et l'âge de la bête.

    J'obtiens donc des inputs avec les valeurs suivantes :
    medor (cla_nom1), 4(cla_age1) ans
    rex (cla_nom2), 6(cla_age2) ans
    ouaf(cla_nom3), 2(cla_age3) ans
    ...

    pour traiter mon form après
    je dois donc savoir quels champs sont vides/pleins

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 153
    Points : 50
    Points
    50
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(i=1; i<$nb; $i++){
     echo "<input name='cla_nom<?php echo $i;?>' class='input-medium' type='text' value='<?php echo $cla_nom; ?>' />" 
    echo "<input name='cla_age<?php echo $i;?>' class='input-medium' style='width:20px;' type='text' value='<?php echo $cla_age; ?>' size='3' maxlength='3' /> ans"
    }
    comme ça nan?

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 152
    Points : 87
    Points
    87
    Par défaut
    oui c'est ce que j'ai.
    Mon problème c'est pour récupérer les variables dans une boucle.

    $_POST['cla_nom.$i'] ça ne fonctionne pas...

  7. #7
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Fait simplement un print_r($_POST) dans ton code qui intercepte le POST, tu comprendras.
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Avec
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input name="clas_nom[]" type="text"/>';
    Tu testes les champs vides avec
    Code JAVASCRIPT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(var i=0;i<document.getElementsByName('clas_nom[]').length;i++)
    {
     if (document.getElementsByName('clas_nom[]')[i].value=="")
    {alert('Tous les champs sont obligatoires');
    return false;}
    }
    et revérifies avec php
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach ($_POST['clas_nom'] as $value)
    {if($_POST['clas_nom']=="")
      { echo "Champ vide";}
    else  
      { echo $_POST['clas_nom'];}
    }
    L'avantage c'est que tu ne te soucies pas du nombres de champs.

  9. #9
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 152
    Points : 87
    Points
    87
    Par défaut
    du coup j'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for($k=1; $k<10; $k++){
     
    		$nom_cla_nom='cla_nom'.$k;
    		$cla_nom=$$nom_cla_nom;
    }
    et ça fonctionne

    Merci pour vos solutions aussi, qui sont bien.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 21
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par selinav Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for($i=1; $i<=$totalRows_Rs_animal; $i++){
    		//$clanom='cla_nom'.$i; j'ai essayé avec $_POST['$clanom'] mais ça marche pas
    		$cla_nom=$_POST['cla_nom.$i'];
    		$cla_age=$_POST['cla_age.$i'];
    		echo $cla_nom;
    		if(empty($cla_nom)){ $Erreur.=" nom animal ".$i."," ;}
    		if(strlen($cla_nom)>30){ $Erreur.=" nom animal".$i."," ;}
    		if(empty($c1a_age) ||(strlen($c1a_age)>2) || !is_numeric($cla_age) ){$Erreur.= " &acirc;ge animal ".$i.",";}
    	}
    Merci de votre aide
    en fait tu étais sur la bonne piste c'est juste une erreur de syntaxe.

    essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $cla_nom = $_POST['cla_nom'.$i];
    $cla_age = $_POST['cla_age'.$i];

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

Discussions similaires

  1. Récupération $_FILES dans formulaire en boucle
    Par AurelienNF dans le forum Langage
    Réponses: 6
    Dernier message: 27/09/2011, 16h58
  2. pb de récupération d'un $_POST dans l'adresse
    Par naroco dans le forum Langage
    Réponses: 4
    Dernier message: 16/04/2010, 16h07
  3. [MySQL] Création de variables dans une boucle et récupération de données avec une requête
    Par lavande4 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/09/2008, 11h10
  4. Réponses: 16
    Dernier message: 03/11/2005, 19h33
  5. [optimisation] var ou pas var dans procedure ?
    Par Michel_57 dans le forum Langage
    Réponses: 5
    Dernier message: 03/06/2005, 15h56

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