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

Résolu/Fermé
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 - 23 janv. 2009 à 14:46
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 - 23 janv. 2009 à 15:18
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 !
A voir également:

3 réponses

Bonjour

for ($i=0; $i<=$max;$i++) {
  if ( isset($_POST['comment' . $i) ) {
    ...
  }
}
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
23 janv. 2009 à 15:00
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 ...
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
23 janv. 2009 à 15:18
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++;
}
}
0