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 :

Création/Modif d'un formulaire


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2015
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2015
    Messages : 70
    Points : 32
    Points
    32
    Par défaut Création/Modif d'un formulaire
    Bonjour à tous, je tourne en rond depuis ce matin pour savoir comment définir si je suis en création ou bien en modification de mon formulaire!
    En fait, j'ai une page qui me permet de rentrer le nom de mon nouveau formulaire et qui est lié avec les différents champs du futur formulaire mais je ne vois pas comment faire pour dire si c'est un nouveau titre, alors pars de 0!

    Je recherche surtout un exemple pour que je puisse m'en inspirer ou une piste pour m'éclaircir les idées.

    Merci d'avance et bonne journée!

    PS: voici le code où je crée mes formulaires.

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    <!DOCTYPE html>
    <html>
     
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <title>sans titre 1</title>
     
    <script language="javascript">
     
    function create_champ(){
    	var item = document.getElementsByTagName("div")[1];
    	var clone = item.cloneNode(true);
    	document.body.appendChild(clone);
    }
     
    function supprime_champ(){
    	var cpt = parseInt(document.getElementById('nombre').value);
    	cpt--;
    	var parent = document.getElementById('zone_dynamique');
    	var NodeListe = parent.getElementsByTagName("div"); 
     
     
    	if( NodeListe.length >= 2 ){
    		var Enfant=NodeListe[NodeListe.length-1]
    		parent.removeChild(Enfant);
    		document.getElementById('nombre').value = cpt;
    	}		
     
     
    }
     
     
    -->
    </script>
     
     
    <script>
      function choixChange(obj){
      	 var valeur = obj.value;
         var paragraphe = document.getElementById("paragrapheSupplementaire");
         paragraphe.innerHTML="";
         if (valeur == "liste" || valeur == "bouton"){
            paragraphe.innerHTML+="<label>Rentrez les informations:</label>"
            +'<input name=sous_choix type="text">';
            /*+'<select name="orientation" id="orientation">'
            +'<option value="LP">LP</option>'
            +'<option value="master">master</option>'
            +'<option value="inge">Ecole d\'ingé</option>'
            +'<option value="boulot">Boulot</option>'
            +'<option value="autre">Autre</option>'
            +'</select>';*/
     
         }
      }
      choixChange();
    </script>
     
     
    <script language="javascript">
     
          function confirme( identifiant )
          {
            var confirmation = confirm( "Voulez vous vraiment supprimer cet enregistrement ?" ) ;
    	if( confirmation )
    	{
    	  document.location.href = "suppression2.php?id_test="+identifiant ;
    	}
          }
     
        </script>
     
    </head>
    <body>
     
     
    <?php
    $serveur = "localhost";
    $base = "site_38";
    $user = "root";
    $pass = "BiOh@z@rd0";
     
    /*
    $mysqli est une nouvelle instance de la classe mysqli
    prédéfinie dans php et hérite donc de ses propriétés et méthodes
    connexion à la base de données
    */
    $mysqli = new mysqli($serveur, $user, $pass, $base);
    // si la connexion se fait en UTF-8, sinon ne rien indiquer
    $mysqli->set_charset("utf8");
    /*
    utilisation de la méthode connect_error
    qui renvoie un message d'erreur si la connexion échoue
    */
    if ($mysqli->connect_error) {
        die('Erreur de connexion ('.$mysqli->connect_errno.')'. $mysqli->connect_error);
    }
    else {
        //echo 'connexion réussie : '.$mysqli->host_info .'</br>';
    }
     
    $sql = '
    SELECT * 
    FROM `test23`
    JOIN `titre23` ON `test23`.Status = `titre23`.id_titre;
    ';
     
    $result = $mysqli->query($sql);
    ?>
    	<table cellspacing="0" cellpadding="3px" rules="rows" style="border:solid 1px #777777; border-collapse:collapse; font-family:verdana; font-size:11px;"> 
    		<tr style="background-color:lightgrey;">
    	      <th style="width:100px;">Nom</th>
    	      <th style="width:100px;">Valeur_champ</th>
    	      <th style="width:100px;">Sous champ</th>
    	      <th style="width:100px;">Modifier</th>
    	      <th style="width:100px;">Supprimer</th>
    	   	</tr> 
     
    <?php
    while($data = $result->fetch_object())
    {
     
    $titre = $data->nom_titre;
    ?>
     
    		<tr>
    	      <td style="padding-left:10px; color:midnightblue;"><?php echo $data->nom_test; ?></td>
    	      <td style="padding-left:10px; color:midnightblue;"><?php echo $data->choix_test; ?></td>
    	      <td style="padding-left:10px; color:midnightblue;"><?php echo $data->sous_choix; ?></td>
    	      <td>
    	      <?php echo( "<a href=\"modification2.php?id_test=".$data->id_test."\">Modifier</a></div>") ; ?>
           	  </td>	
           	  <td>
           	  <?php echo( "<a href=\"#\" onClick=\"confirme('".$data->id_test."')\" >Supprimer</a><br>") ; ?>
           	  </td>	   	
           	</tr> 
    <?php	
    }
    ?>
     
    	</table>
     
     
     
     
    <fieldset name="test">
    <legend><?php echo $titre; ?></legend>
    <form id="idTest" name="test23[]" method="post" action="test_traitement23.php">
    <!--Nombre de champs : <input name="nombre" id="nombre" type="text" value="1" size="3">-->
     
     
    	<div id="zone_dynamique">
    		<div id="test" align="left"> Nom du champ: 
    			<!--<input name="nom_test" type="text"/>-->
    			<?php echo '<textarea name="nom_test" id="id_nom" value="' .$_POST['nom_test']. '"></textarea>'; ?>
    			Choix : <select name="choix_test" id="choix" onchange='choixChange(this);'> 
    			<option value="test" selected="selected">Choisir un type</option>
    			<option value="champ_texte">Champ de texte</option>
    	        <option value="zone_email">Zone d'adresse e-mail</option>
    	        <option value="liste">Liste déroulante</option>
    	        <option value="bouton">Boutons radio</option>
    	        <option value="case">Cases à cocher</option>
    	        <option value="zone_texte">Zone de texte</option> 
    		</select> 
    		</div>
     
    		<div id="paragrapheSupplementaire">
     
    		</div>
    	</div>
     
     
    	<div id="button">
    		<!--<input type="button" onClick="javascript:create_champ()" value="Ins&eacute;rer un autre champ"/>-->
    		<input type="submit" value="envoyer" name="valider"/>
    	</div>	
     
    </form>
    </fieldset>
     
    <?php
    /* free result set */
    $result->close();
     
    $mysqli->close();
     
    ?>
     
    </body>
     
    </html>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je pense que si tu nommais mieux tes éléments tu t'y retrouverais mieux aussi

    Si je comprends bien ton code la partie après la ligne 140 permet soit d'ajouter un input à un formulaire existant, soit de créer un formulaire avec un input.
    Ton problème déja vient du fait que tu balances dedans $_POST['nom_test'] sans avoir vérifié s'il existait ou non.
    Ensuite, il manque l'id du formulaire dans ce formulaire.
    Pour finir sur le traitement, soit tu as un id fourni, et c'est une modification, soit l'id est vide, et c'est un nouveau formulaire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2015
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2015
    Messages : 70
    Points : 32
    Points
    32
    Par défaut
    Bonjour merci pour la réponse.

    Tout d'abord, qu'est ce qui ne va pas avec le nommage de mes éléments?
    Ensuite, j'ai rajouté la condition pour tester si ma variable $_POST existait et si je ne dis pas de bêtises, l'id de mon formulaire se trouve à la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="idTest" name="test23[]" method="post" action="test_traitement23.php">
    , non?

    Et donc pour savoir si je suis en modification, il faut que je fasse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(isset($_POST['$id_du_form']))
    echo 'modif'; 
    else
    echo 'création';
    Ça c'est un exemple à la va vite.

    En tout cas merci beaucoup.


    PS: pour l'id du formulaire, il faut que je rajoute un input de type hidden?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je parlais de l'id du formulaire dans la base de donnée, pas de l'id HTML.

    Pour les noms, tu trouves vraiment que "test23[]" c'est un bon nommage ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2015
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2015
    Messages : 70
    Points : 32
    Points
    32
    Par défaut
    Bonjour, alors l'id du formulaire correspond à l'id du titre du formulaire sur lequel j'ai fait un jointure pour associer ce titre à tous les champs qui lui seront attribués.

    Quant au nommage, c'est du test alors pour l'instant je m'y retrouve. Je ne manquerais pas de changer quand j'arriverai vers la fin de ma conception.

    Merci

Discussions similaires

  1. [AC-2010] interdire mode création/modification formulaire
    Par jjravidoni dans le forum Sécurité
    Réponses: 2
    Dernier message: 10/12/2012, 08h38
  2. Horodatage d'une modif dans un formulaire
    Par kluh dans le forum Access
    Réponses: 1
    Dernier message: 25/11/2005, 08h59
  3. Réponses: 9
    Dernier message: 17/11/2005, 14h58
  4. Enregistrer une modification dans un formulaire
    Par micheline dans le forum Access
    Réponses: 5
    Dernier message: 26/06/2005, 19h13

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