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 :

formulaire multiple


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2016
    Messages : 27
    Par défaut formulaire multiple
    Bonjour à tous , bonjour à toutes

    Je suis désespérée et vient à vous pour que vous m'aidiez J'ai un problème qui me prend la tête depuis déjà 2 semaines. Il est assez complexe, je vais essayer d'être le plus explicite possible.

    Mon problème concerne un gros projet de dev web, je ne vais pas vous mettre le code du projet, il est beaucoup trop complexe.

    J'ai essayé de schématiser mon problème en re-écrivant les lignes de code qui posent problème.
    L'exemple qui va suivre n'a donc ni queue ni tête mais vous permettra juste de comprendre dans les grandes lignes quel est le problème.

    #Avant de commencer je tiens à remercier du fond du coeur la personne qui réussira à me dépanner #


    Voici la premiere partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     <?php
    $boucle=1;
    $cpt=1;
    ?>
    <form method="post" action='joli2.php'>
    	<?php while($boucle<=3)
    	{
    		?>
    		<table width="100%" border="0" cellspacing="2" cellpadding="5">
    			<tr>Utilisateur <?=$boucle;?></tr>
    			<tr>            
    				<td>Nom</td>
    				<td><input name="Nom<?=$boucle;?>" type="text" value="Nom<?=$boucle;?>" ></td>
    			</tr>
    			<tr>            
    				<td>Prenom</td>
    				<td><input name="Prenom<?=$boucle;?>" type="text" value="Prenom<?=$boucle;?>"></td>
    			</tr>		
    			<tr>            
    				<td>Age</td>
    				<td><input name="Age<?=$boucle;?>" type="text" value="Age<?=$boucle;?>"></td>
    			</tr>
    			<input type="submit" value="Modifier" name="modifierUser<?=$boucle;?>">
    		</table>
    		<hr style="border-top-width: 9px;">
    		<?php 
    		$boucle++;
    	}
    	?>
     
     
    	<hr style="border-top-width: 15px;">
     
     
    	<?php while($cpt<=2)
    	{
    		?>
    		<table width="100%" border="0" cellspacing="2" cellpadding="5">
    			<tr>            
    				<td>Adresse</td>
    				<td><input name="Adresse<?=$cpt;?>" type="text" value="Adresse<?=$cpt;?>" ></td>
    			</tr>
    			<tr>            
    				<td>Cp</td>
    				<td><input name="Cp<?=$cpt;?>" type="text" value="Cp<?=$cpt;?>"></td>
    			</tr>		
    			<input type="submit" value="Modifier" name="modifierInfo<?=$cpt;?>">
    		</table>
    		<hr style="border-top-width: 9px;">
    		<?php 
    		$cpt++;
    	}
    	?>
    </form>
    J'ai (UN SEUL) formulaire. Dans lequel plusieurs informations peuvent être traitées. (Plusieurs boutons modifier vont apparaître)

    Image : Nom : p9.png
Affichages : 225
Taille : 20,6 Ko

    Chacuns des boutons modifier auront un des noms différents (c'est logique) pour leurs permettre de lancer le traitement de modification correspondant (ça aussi, c'est logique )

    Rappel : Nous avons une premiere page, dans laquelle sont affichées des informations. Il est possible de les modifier en cliquant sur le bouton "Modifier". Celà faisant appel à "joli2.php"

    Voici le contenu de joli2.php

    De la manière la plus sale du monde, le fonctionnement du traitement serait le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    <?php
     
    if(isset($_POST['modifierUser1']))
    {
    	$nom=$_POST['Nom1'];
    	$prenom=$_POST['Prenom1'];
    	$age=$_POST['Age1'];
    	echo '<b> Le nom : </b>'.$nom.'<br>';
    	echo '<b> Le prenom : </b>'.$prenom.'<br>';
    	echo '<b> L age : </b>'.$age.'<br>';
    // On fait un update dans la base de données.
    }
    elseif(isset($_POST['modifierUser2']))
    {
    	$nom=$_POST['Nom2'];
    	$prenom=$_POST['Prenom2'];
    	$age=$_POST['Age2'];
    	echo '<b> Le nom : </b>'.$nom.'<br>';
    	echo '<b> Le prenom : </b>'.$prenom.'<br>';
    	echo '<b> L age : </b>'.$age.'<br>';
    // On fait un update dans la base de données.
    }
    elseif(isset($_POST['modifierUser3']))
    {
    	$nom=$_POST['Nom3'];
    	$prenom=$_POST['Prenom3'];
    	$age=$_POST['Age3'];
    	echo '<b> Le nom : </b>'.$nom.'<br>';
    	echo '<b> Le prenom : </b>'.$prenom.'<br>';
    	echo '<b> L age : </b>'.$age.'<br>';
    // On fait un update dans la base de données.
    }
     
     
     
    if(isset($_POST['modifierInfo1']))
    {
    	$adresse=$_POST['Adresse1'];
    	$cp=$_POST['Cp1'];
    	echo '<b> L adresse : </b>'.$adresse.'<br>';
    	echo '<b> Le cp : </b>'.$cp.'<br>';
    // On fait un update dans la base de données.
    }
    elseif(isset($_POST['modifierInfo2']))
    {
    	$adresse=$_POST['Adresse2'];
    	$cp=$_POST['Cp2'];
    	echo '<b> L adresse : </b>'.$adresse.'<br>';
    	echo '<b> Le cp : </b>'.$cp.'<br>';
    // On fait un update dans la base de données.
    }
     
    ?>
    Oui, c'est bien beau mais nous avons marqué en brut le numéro des $_POST 1 ,2 et 3


    Nous pouvons donc faire mieux, au travers d'une boucle, mais le code qui va suivre est toujours aussi moche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php
     
    $i=1;
    $termine=0;
    while($i<50 || $termine!=1)
    {
    	if(isset($_POST['modifierUser'.$i]))
    	{
    		$nom=$_POST['Nom'.$i];
    		$prenom=$_POST['Prenom'.$i];
    		$age=$_POST['Age'.$i];
    		echo '<b> Le nom : </b>'.$nom.'<br>';
    		echo '<b> Le prenom : </b>'.$prenom.'<br>';
    		echo '<b> L age : </b>'.$age.'<br>';
    // On fait un update dans la base de données.
    		$termine=1;
    	}
    	$i++;
    }
     
    $i=1;
    $termine=0;
    while($i<50 || $termine!=1)
    {
    	if(isset($_POST['modifierInfo'.$i]))
    	{
    		$adresse=$_POST['Adresse'.$i];
    		$cp=$_POST['Cp'.$i];
    		echo '<b> L adresse : </b>'.$adresse.'<br>';
    		echo '<b> Le cp : </b>'.$cp.'<br>';
    // On fait un update dans la base de données.
    		$termine=1;
    	}
    	$i++;
    }
     
    ?>
    J'en suis donc là. Nous nous rendons comptes qu'il y a un problème. En admettant qu'on appuie sur le dernier bouton modifier du programme.
    Le joli2.php va devoir faire toutes les boucles du modifierUser et toutes les boucles du modifierInfo pour enfin tomber sur le bon if(isset($_POST['modifierInfo2'])).

    Ma question est donc :

    Comment faire pour d'abord tester les if(isset($_POST['modifierUser'.$i])) avant de faire les boucles ?

    Note : Je ne peux pas faire d'autres <form></form>


    Ma première piste de réflexion (que je n'ai pas réussi à exploiter) aurait été de tester de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['modifierInfo'.######+ caractere JOKER ######]))
    De manière à dire au programme : " Hey, dis moi si quelqu'un à appuyé sur modifierInfo, quel que soit l'ID qui suit je m'en fou , je ferai mes boucles après"


    Toi qui lis ce message, je te remercie d'en être arrivé jusque là. Si tu as un idée, n'hésites pas à la partager, je ne t'en remercierai jamais assez.

    Bonne journée !

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 233
    Par défaut
    Bonjour,
    Toi qui lis ce message, je te remercie d'en être arrivé jusque là. Si tu as un idée, n'hésites pas à la partager, je ne t'en remercierai jamais assez.
    mon idée est que tu as un problème de PHP et non de conception Web, je déplace donc sur le Forum concerné

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut
    Le joli2.php va devoir faire TOUUUUUUTES les boucles du modifierUser et TOUUUUUTES les boucles du modifierInfo pour enfin tomber sur le bon if(isset($_POST['modifierInfo2'])).
    Et en quoi c'est dramatique ?

    Sinon une autre manière de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <html>
    	<form method="post">
    		<!-- j'ai mis le minimum -->
    		<input type="submit" value="Modifier" name="modifierUser1">
    		<input type="submit" value="Modifier" name="modifierUser2">
    		<input type="submit" value="Modifier" name="modifierInfo1">
    		<input type="submit" value="Modifier" name="modifierInfo2">
    	</form>
     
    </html>
    <?php
    print_r($_POST);
    $typeModification = '';
    $idModification = 0;
    foreach ($_POST as $k => $v) {
    	if ( strpos($k,'modifierUser')!== false || strpos($k,'modifierInfo')!== false ) {
    		$typeModification = substr($k,0,12);
    		$idModification = (int)substr($k,12);
     
    	}
    }
     
    echo "typeModification $typeModification idModification $idModification";

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

Discussions similaires

  1. [Crystal] transformation d'une date en numéro de semaine
    Par barna dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 24/03/2017, 10h41
  2. [VB6]manipuler les semaines en VB ?
    Par kamadji dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 02/05/2003, 13h33
  3. [Kylix] Blocage Kylix 3
    Par DevX dans le forum EDI
    Réponses: 2
    Dernier message: 13/11/2002, 21h29
  4. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 22h29
  5. Réponses: 3
    Dernier message: 19/04/2002, 01h11

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