Rechercher : dans
Par :

[PHP] $_POST sur champs avec nom aléatoire

Dernière réponse le 23 jan 2009 à 15:18:42 Passarinho44, le 23 jan 2009 à 14:46:20 
 Signaler ce message aux modérateurs

Bonjour à tous,

Je fais actuellement un formulaire en PHP et Javascript surtout.

Avec le Javascript, je génère des champs textes que l'on peut supprimer.

A chaque fois je met un id et un nom au champ sous la forme : 'comment' + i
où i est une variable qui est incrémentée à chaque fois.

Le seul problème c'est que les champs peuvent être supprimés.

Je me retrouve donc avec des champs avec des noms :

comment1
comment3
comment4
comment7
...

C'est très alétoire et ça change à chaque fois donc je ne sais pas comment récupérer les noms.
Quelqu'un aurait une idée de la boucle à faire?

J'ai testé
$i = 0;
while ( isset($_POST['comment' . $i) ) {
$i++;
}

Mais bien sur ça ne fonctionne que si tous les noms se suivaient ...

Quelq'un a une idée pour récupérer la liste de ces noms en PHP?

Merci d'avance !

Meilleures réponses pour « [PHP] $_POST sur champs avec nom aléatoire » dans :
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Génération d'images VoirPrérequis PHP permet de créer des images au format GIF à l'aide d'une librairie de fonctions prévue à cet effet. La librairie permettant de créer et manipuler des fichiers graphiques se nomme GD, ainsi, pour pouvoir utiliser ces fonctions il faut...
PHP - Connexion à un annuaire LDAP VoirIntroduction à LDAP PHP permet la connexion et l'envoi de requêtes sur un annuaire LDAP, c'est-à-dire un serveur permettant de stocker des informations de manière hiérarchique. Un serveur LDAP est conçu pour être capable de gérer les opérations...

1

toto, le 23 jan 2009 à 14:51:22

Bonjour

for ($i=0; $i<=$max;$i++) {
  if ( isset($_POST['comment' . $i) ) {
    ...
  }
}

Répondre à toto

2

Passarinho44, le 23 jan 2009 à 15:00:35

Merci pour cette réponse,

C'est bien ce que je voulais faire, mon problème était : comment trouvé $max?

J'ai trouvé un petit bout de code pas mal du tout : (si ça peut aider quelqu'un )

foreach($_POST as $key=>$val) { echo $key.'=>'.$val.'<br />'; }

Je vais essayer de me débrouiller avec ça pour trouver le fameux $max ...

Répondre à Passarinho44

3

 Passarinho44, le 23 jan 2009 à 15:18:42

Bon bah voilà j'ai réussi à me débrouiller avec ça ^^

Je poste mon code si ça peut aider quelqu'un ... =)

// Recherche du maximum pour la boucle pour
// On initialise le maximum
$max = 0;
// On recherche parmis toutes les valeurs postées
foreach($_POST as $key=>$val) {
// On les coupe avec "comment"
$keys_part = split("comment", $key);
// Si c'est bien sous la forme comment + i
if ( sizeof($keys_part) > 1 and $keys_part[1] > $max ) {
// Le maximum est initialisé avec ce i
$max = $keys_part[1];
}
}

// On récupère les résultats dans un tableau
$j = 0;
// On fait une boucle sur tous les comments
for ( $i = 0 ; $i < ($max + 1) ; $i++ ) {
// Si le comment n'est pas vide
if ( $_POST['comment' . $i] != "" ) {
// On l'ajoute dans le tableau
$comment[$j] = htmlspecialchars(mysql_escape_string($_POST['comment' . $i]));
// On passe à la case suivante du tableau
$j++;
}
}

Répondre à Passarinho44