Formulaire HTML et PHP Boucle foreach

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par hx.jonathan, 17 Octobre 2009.

  1. hx.jonathan
    hx.jonathan WRInaute discret
    Inscrit:
    2 Mars 2005
    Messages:
    159
    J'aime reçus:
    0
    Salut à tous, :D

    Mon problème est assez classique mais je ne trouve pas d'exemple clair et bien expliqué pour me sortir de là. Voici donc le but :
    je créer une galerie photos avec des albums.
    Le formulaire qui me pose problème est celui permettant à l'utilisateur de modifier le nom des albums.

    J'affiche donc un formulaire avec un input pour le nouveau nom (name='data[nouveaunom]') ET un input HIDDEN pour le nom actuel.

    Sur la même page j'aimerais donc récupérer le couple ancien nom - nouveau nom en faisant une boucle.

    Voici à quoi ressemble mon formulaire


    Code:
    echo '<FORM method="POST" action="Admin.php?page=galerie_001_02">';
    
    $affnom = mysql_query("SELECT * FROM Album ORDER BY id_album")or die(mysql_error());
    		while($row4 = mysql_fetch_array($affnom)){
    		
    		$album_name=$row4['album_name'];//Ancien nom avec accent
    		$ancien_nom_modifie=$row4['album_dossier'];//Ancien nom MODIFIE caractères spéciaux
    		
    		echo'<p>Nom actuel : " <strong> '.$album_name.'</strong> " Nouveau nom : <INPUT type="text" name="data[nouveaunom][]" size=30></input><INPUT type="hidden" name="data[nomactuel][]" size=30 value='.$album_name.'></input></p>';
    		
    		}
    
    echo '<p><INPUT type="submit" value="Confirmer"></p>';
    echo '</FORM>';
    Et voici comment j'essaie de récupérer mes valeurs :

    Code:
    if(isset($_POST)) 
    {
    
    		foreach($_POST['data']['nouveaunom'] as $index=>$nouveaunom)
    		{
    			if(!empty($nouveaunom))
    			{
    				
    					echo  $nouveaunom.' - ';
    		
    						foreach($_POST['data']['nomactuel'] as $index2=>$valeur_actuel)
    						{
    					
    						
    						echo  $valeur_actuel;
    						
    						echo '<br/>';
    						}	
    				
    							
    			}
    			
    			
    		}
    
    }
    2 questions :

    1) est-ce que la manière dont je note data[] dans mon formulaire est correcte pour la récupération des données

    2) comment dois-je procéder au niveau des boucles foreach ?

    D'avance merci à tous.

    John :D
     
  2. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 593
    J'aime reçus:
    0
    Pas un pro du php, donc je ne sais vraiment pas si les notations xxx[toto][] ou xxx[][toto] dans les noms des champs sont supportées, et j'ai la flemme d'aller vérifier, mais tu sais, toute la doc de php est en ligne sur www.php.net :)

    La solution qui me semble la plus simple (et la plus sûre), c'est de numéroter tes champs. Genre nouveau_nom_1, nouveau_nom_2, etc. et pareil pour ancien_nom. Encore mieux, utilise l'id (id_album), comme ça tu n'as même pas besoin de mettre le champ hidden, et tu vas t'éviter toutes sortes de problèmes par la suite. Donc '<input type="text" name="nouveau_nom_'.$id_album.'">' etc. Et tu fais la même boucle lors du traitement du formulaire que lors de son affichage...

    Jacques.
     
  3. Sullyvan
    Sullyvan WRInaute discret
    Inscrit:
    20 Mai 2008
    Messages:
    85
    J'aime reçus:
    0
    bonjour, la syntaxe du formulaire est correcte, par contre au niveau du php si tu fais comme tu as mis tu vas afficher tous les nouveaux nom pour tous les anciens.. (genre ancien1 - nouveau1 nouveau2 nouveau xx, ancien2 nouveau 1 nouveau 2 nouveau xx).

    Ce qu'il faut faire c'est une seule boucle foreach et utiliser l'index de ancien pour trouver le nouveau correspondant, ça donnerais un code comme ça:
    Code:
    if(isset($_POST))
    {
    
          foreach($_POST['data']['nouveaunom'] as $index=>$nouveaunom)
          {
             if(!empty($nouveaunom))
             {            
                   echo  $nouveaunom.' - '.$_POST['data']['nomactuel'][$index'];
                    echo '<br/>';
               }      
          }
    
    }
     
Chargement...
Similar Threads - PHP Boucle foreach Forum Date
Boucle PHP et référencement Rédaction web et référencement 13 Décembre 2019
Un chiffre aléatoire mais uniquement dans une boucle php Développement d'un site Web ou d'une appli mobile 15 Octobre 2016
Affichage de notice php dans boucle for Développement d'un site Web ou d'une appli mobile 25 Janvier 2013
Boucle PHP toute simple Problèmes de référencement spécifiques à vos sites 14 Février 2012
style différent tous les 3 enregistrements sur une boucle php Développement d'un site Web ou d'une appli mobile 17 Septembre 2010
formulaire de contact sans php Développement d'un site Web ou d'une appli mobile 5 Avril 2020
Ne pas mettre à jour forum Phpbb Administration d'un site Web 19 Février 2020
Phpbb et app.php et RSS ? Débuter en référencement 17 Février 2020
Title et meta déscription par PHP Référencement Google 20 Décembre 2019
Mettre à jour Php Administration d'un site Web 1 Décembre 2019
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice