Formulaire de modification

Eléphant du PHP | 167 Messages

17 juin 2013, 11:51

Bonjour,

J'ai un formulaire qui me permet de modifier un enregistrement.
Je modifie et affiche les modifications sur la même pas. Ce que je veux c'est pouvoir garder ce que j'ai modifié dans les input.
J'ai essayé avec ça sur tout les champs:

<input name="nom" type="text" required value="<?php echo $etudiants['nom']; if(isset($_POST['nom'])){ echo htmlentities($_POST['nom]);}?>">
</p>

Mais le problème c'est quand je valide, dans les input j'ai deux fois l'info dans les input non modifié.

Merci de votre aide.

Mammouth du PHP | 2278 Messages

17 juin 2013, 12:35

Ce serait plus clair ainsi:
if (isset($_POST['nom']))
 { 
        $nom_poste =  htmlentities($_POST['nom]);
}
else
{
     $nom_poste = ""; // ou  $nom_poste = $etudiants['nom'];
}
$nom_bdd = $etudiants['nom'];

print"
<input name="nom_nouveau" type="text" required value="$nom_poste"  />
<input name="nom_bdd" type="hidden"  value="$nom_bdd"  />
</p>";
si je comprends bien du moins.
ou
<input name="nom_nouveau" type="text" required value="$nom_poste;$nom_bdd" />
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Mammouth du PHP | 571 Messages

17 juin 2013, 12:38

bonjour,

tu peux essayer de distinguer les 2 cas (ajout et modification) avant de pouvoir affecter une valeur à l'attribut value de input.
Pa exemple:
<?
$data=array();
//le tableau $etudiant n'est pas vide alors on va chercher les données de ce tableau pour l'affecter dans le tableau $data
if(!empty($etudiants) ){
$data['nom'] = $etudiants['nom'];
//$data['prenom'] = $etudiants['prenom'];
}else{ //mode ajout , on vérifie que $_POST n'est pas vide
if(!empty($_POST)){
$data['nom'] = $_POST['nom'];
//$data['prenom'] = $_POST['prenom'];
}
}
?>
<input name="nom" type="text" required value="<?php echo $data['nom']?>" >

Eléphant du PHP | 167 Messages

17 juin 2013, 13:06

Re,

Merci de vos réponses rapides.
J'ai essayé les deux méthodes, mais ça ne marche pas... une fois que je valide le formulaire les input ne sont pas gardés.

Mammouth du PHP | 571 Messages

17 juin 2013, 16:49

Re,

Merci de vos réponses rapides.
J'ai essayé les deux méthodes, mais ça ne marche pas... une fois que je valide le formulaire les input ne sont pas gardés.
j'ai repris à peu près ton code de départ pour t'illustrer comment peupler un formulaire à la suite d'une mise à jour ou d'un ajout.Par ailleurs ta réponse ne me permet pas de savoir pourquoi ça ne marche.

Eléphant du PHP | 167 Messages

17 juin 2013, 16:57

Re,

Mon formulaire en fait ne sert qu'à modifier, avec etudiants[] je récupère toutes les données de la base pour un etudiant que je met dans des input.
Comme le traitement je le fais sur la même page, je veux pouvoir garder d'afficher ce que j'ai modifier dans les input quand je valide.
Avec le code que tu as donné, ça ne marche pas cad que quand je valide, la valeur que j'ai mis dans le input disparaît.
J'espère que c'est assez clair cette fois-ci :)