Modification des formulaires php

Fermé
Freuducci Messages postés 1 Date d'inscription dimanche 23 avril 2017 Statut Membre Dernière intervention 23 avril 2017 - 23 avril 2017 à 04:50
 Utilisateur anonyme - 23 avril 2017 à 07:11
Bonjour j'ai un petit probleme j'ai commence a programer en php y a pas longtemps .
j'ai un formulaire qui a Nom prenom et code mais apres l'enregistrement je ne peut pas le modifier(les champs qui ont ete enregistre) svp qui peut m'aider avec le syntaxe
voici mon code
<!DOCTYPE HTML>
<html>
<head>
<title>Devoir de php</title>
</head>
<body>
<body>
<form action="Devoirdephp24mars2017.php" method="post">
<br/>Code<br/>
<input type="text" name="txt_code" placeholder="Entrer votre Code"/>
<br/>Nom<br/>
<input type="text" name="txt_nom" placeholder="Entrer Votre Nom"/>
<br/>Prénom<br/>
<input type="text" name="txt_prenom" placeholder="Entrer Votre Prénom"/>
<br/>Sexe<br/>
<input type="radio" name="rd_sexe" checked value="M"/> Masculin
<input type="radio" name="rd_sexe" value="F"/>Féminin
<br/>
<input type="submit" name="save" value="Enregistrer"/>
<br/><br/><br/><input type="text" name="txt_search" placeholder="Code Seulement"/>
<input type="submit" name="search" value="Recherche"/>
<br/>
<br/>
</form>
<?php
session_start();
?>
<?php

$prs = array();
if(isset($_POST["save"]))
{
$prs[0]= array("Code"=>$_POST["txt_code"],"Nom"=>$_POST["txt_nom"],"Prenom"=>$_POST["txt_prenom"],"Sexe"=>$_POST["rd_sexe"]);

$_SESSION["pou"][] = $prs[0];

$prs = $_SESSION["pou"];

echo "<table border>";
echo "<tr><th>Code</th><th>Nom</th><th>Prénom</th><th>Sexe</th></tr>";
for($de=0;$de<sizeof($prs);$de++)
{
echo "<tr><td>".$prs[$de]["Code"]."</td>";
echo "<td>".$prs[$de]["Nom"]."</td>";
echo "<td>".$prs[$de]["Prenom"]."</td>";
echo "<td>".$prs[$de]["Sexe"]."</td></tr>";
}

echo "</table>";
}


if(isset($_POST["search"]))
{
$prs = $_SESSION["pou"];

echo "<table border>";
echo "<tr><th>Code</th><th>Nom</th><th>Prénom</th><th>Sexe</th></tr>";
for($de=0;$de<sizeof($prs);$de++)
{
if(($prs[$de]["Code"]==$_POST["txt_search"]))
{
echo "<tr><td>".$prs[$de]["Code"]."</td>";
echo "<td>".$prs[$de]["Nom"]."</td>";
echo "<td>".$prs[$de]["Prenom"]."</td>";
echo "<td>".$prs[$de]["Sexe"]."</td></tr>";
}
}


echo "</table>";
}

?>
</body>
</html>
A voir également:

1 réponse

Bon déjà pour le bien de tous, utilise les balises code php dans ton message, car là le code est pas simple à lire sans la couleur syntaxique.

Ensuite je ne vois aucune fonction ou autre pour la modification, juste pour l’enregistrement et la recherche.
Donc montre nous ce que tu as essayé, pour qu'on puisse te guider/corriger, et non le faire à ta place, car tu vas pas comprendre le code directement, enfin il faut le faire pour bien comprendre, surtout que t'es encore en apprentissage.

Sinon ce que je peux déjà corriger/commenter sur ton code:

Pourquoi il y a deux fois la balise <body> d'ouverte?

Pour le action de ton formulaire, mais rien, enfin laisse vide comme ceci
<form action="" method="POST"></form>
comme ça dès que tu postes, ça sera vers la page actuel, même si le nom de la page dans action est celle actuelle, ça t'éviteras des soucis si tu renommes ta page.

Ensuite sépare les formulaires, car là si par exemple tu fais une recherche et que tu appuies sur la touche Entrée, pour soumettre le formulaire ça va créer une nouvelle entrée en même temps.

Après, mais là c'est un conseil, je sais pas où tu en es au niveau PHP et aussi ce que tu dois faire ou pas dans cette exo, mais c'est mieux de vérifier que les champs ne sont pas vide.

Et ici:

...
<?php
session_start();
?>
<?php
$prs = array();
...


Pourquoi fermer puis ré-ouvrir directement les balises PHP, c'est inutile. Et petit conseil au passage, met la fonction session_start() au tout début de ta page PHP, ça t'éviteras des soucis au cas où tu fais une gestion des erreurs dans ton formulaire plus tard.

Puis pourquoi utiliser une boucle for, pour récupérer un à un les items du tableau, alors qu'un foreach est bien adapter pour ça, voici la documentation du foreach

Et sinon je trouve que tu utilises mal ta variable, $prs. Mais bon tu débutes, je comprend que c'est pas facile tout de suite, et que tu ne connais pas encore tout, tu n'as pas forcément la logique avec et t'as pas encore vu assez d'erreur pour débugger en un coup d’œil mais tout ce que je dis c'est pour que tu optimises ton code et que tu t'améliores.

Au passage c'est pour l'exo que t'es obliger d'utiliser la variable SESSION pour stocker tes infos? Pourquoi ne pas utiliser un truc plus permanent comme une base de donnée, voir enregistrer les infos dans un simple fichier texte?
0