Comment mieux coder cette partie de code ?

Résolu/Fermé
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018 - Modifié par Aaymeric le 9/02/2015 à 17:08
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018 - 10 févr. 2015 à 18:16
Bonjour,
Essayant de faire de une page pour modifier les cordonnées d'une personne dans un formulaire, j'ai écris ce code:

<td>
 <?php
   if(!empty($donnees['nom'])){
  ?> <input type="text" name="nom" value="<?php $donnees['nom']; ?>" />
  <?php
   } else {
  ?><input type="text" name="nom" value="<?php echo 'Le champ est vide !'; ?>" />
  <?php
   }
?>
</td>


Mais voila, je le trouve horriblement laid. Rassurez moi, il y a une solution non ? ^^
Ah et pour le value"", je cherche encore ;)
A voir également:

7 réponses

jordane45 Messages postés 38386 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 janvier 2025 4 727
9 févr. 2015 à 18:04
Bonjour,

Déjà .... évites donc de fermer/ouvrir des balises PHP en rafale....

Ensuite... au lieu d'utiliser du IF / ELSE ... tu peux faire la même chose en écriture TERNAIRE.

Donc par exemple :

<td>
<?php
$valeur_name = isset($donnees['nom']) && !empty($donnees['nom']) ?$donnees['nom']: 'Le champ est vide !' ;
echo "<input type='text' name='nom' value='".$valeur_name."' >";
?>
</td>



0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
9 févr. 2015 à 19:30
Concernant les balises PHP c'est justement ce que je voulais éviter mais mettre de l'HTML dans du php même sous forme d'un écho n'est il pas déconseiller ?
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
9 févr. 2015 à 22:52
Le problème de base a été résolue et je t'en remercie mais il y a un nouveau soucis.
J'envoie les données sur une page de vérification via la méthode "post" mais cette seconde page ne détecte pas $_POST['nom'] (par exemple).

Une petite idée ?
0
Des idées ce n'est pas ce qui manque ^^

echo var_dump($_POST);
die();

http://www.lephpfacile.com/manuel-php/function.var-dump.php

Cdt
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228 > Utilisateur anonyme
10 févr. 2015 à 14:29
die();

Même dans un code qui est loin d'être utilisé en prod, ça me pique les yeux... Chépa, j'dois être allergique.
0
Utilisateur anonyme > ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021
Modifié par ludobabs le 10/02/2015 à 14:42
Non non gravgun ( salutation au passage ^^ ) tu n'es pas allergique, moi aussi ça me pique, mais c'est efficace et radical, alors voilà ...
0
jordane45 Messages postés 38386 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 janvier 2025 4 727
10 févr. 2015 à 13:19
Bonjour,


J'envoie les données sur une page de vérification via la méthode "post" mais cette seconde page ne détecte pas $_POST['nom'] (par exemple).


Comme le suggère Ludo (que je salue au passage ^^ ), il te faut dans un premier temps deboguer ton code... et pour cela .. ne pas hésiter à afficher tes variables à l'aide de var_dump... print_r ..etc.......

Ensuite.... si tu ne reçois effectivement aucune donnée POST dans ta page... c'est sûrement que tu as un souci au niveau de ton FORM ....
Pour que l'on puisse t'aider... il faut que tu nous montres le code de ton formulaire....


0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
Modifié par Aaymeric le 10/02/2015 à 17:06
Pourquoi c'est déconseillé et "mauvais" d'utiliser le die(); ?

Sinon voici le code de mon formulaire. Je l'ai raccourcie pour mettre seulement un cas de $_POST().

<div id="infomembre">
 <form methode="post" action="verifmodifinfo.php">
 <table>
  <span class="information">Mes informations</span>
  <tr>
   <td>Nom:</td>
   <td>
    <?php
     $reponse = isset($donnees['nom']) && !empty($donnees['nom']) ?$donnees['nom']: '' ;
     echo "<input type='text' name='nom' value='".$reponse."' >";
    ?>
   </td>
 </table><br>
 <input type="submit" class="boutonmodifier" value="Envoyer"/>
 </form>
</div>


Merci pour vos réponses :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
10 févr. 2015 à 17:30
Salut,
method="post" et non methode
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
Modifié par Aaymeric le 10/02/2015 à 18:12
J'avoue -_- Merci !
J'ai d'autres problèmes ...

La partie de code que je vous ai envoyé concerne l'exemple pour le "nom" mais j'ai utilisé le même code pour toutes les autres informations (variables) exemple: prenom, adresse, ... (prenom est le 2ème dans le code)

Concernant le champ "nom", celui-ci est déjà complété par Dubois (par exemple).
j'ai trois autres champs qui ne sont pas complétés. Je les complète simplement par a, b et c.

Une fois les informations complétés, le bouton renvoie les variables en POST vers une page de vérification. Pour vérifier si les $_POST('maVariable'); fonctionnent, je fais un echo. Et la, pour echo $_POST('nom'), au lieu de m'afficher "Dubois" il m'indique c et ensuite, j'ai le même message d'erreur pour toutes les autres variables (prenom, adresse, ...).

Du coup, au lieu de mettre pour chaque information (nom, prenom,...)
le code suivant:
$reponse = isset($donnees['nom']) &&  ... 

Je mets pour le nom:
<?php
     $repnom = isset($donnees['nom']) && !empty($donnees['nom']) ?$donnees['nom']: '' ;
     echo "<input type='text' name='nom' value='".$repnom."' >";
    ?>


Le prénom:
<?php
     $repprenom = isset($donnees['prenom']) && !empty($donnees['prenom']) ?$donnees['prenom']: '' ;
     echo "<input type='text' name='prenom' value='".$repprenom."' >";
    ?>


Et ainsi de suite mais j'ai toujours le même problème ...
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
10 févr. 2015 à 18:16
J'ai résolue moi même le problème en affichant le code ici ... je ne remplaçais pas le name="maVariable" ...

Merci pour vos réponses ! :)
0