SVP PHP "modification d'un formulaire":-
Résoluje suis sur une application. j'ai une page avec une requete sql qui me di presente tous les tickets(sous forme de tableau) qu'il y a dans ma table ticke de bdd.
Pour qu'il puisse etre enregistré et donc aparaitre comme je l'est di si dessus, j une page création ticket avec un formulaire qui est envoyé a la bdd de la table ticket.
A chaque fin de ligne correspondant a un ticket j mi un bouton modifier, ce que j'aimerais faire et la ou je bloque c que lorsque je clique sur le bouton modifier sa me met dans un autre formulaire d'une otre page"modif.php" mais avec les champs rempli et je puisse modifier ce que je veux et ensuite le validé.
Voila votre aide me serez d'une tres grande importance.
Mercii beaucoup d'avance
Configuration: Windows XP Internet Explorer 7.0
80 réponses
La problématique porte sur l'affichage d'une liste de tickets et l'ouverture d'un formulaire de modification sur une page distincte, modifierticket.php, en pré-remplissant les champs depuis la base de données. Plusieurs solutions essentielles ont été évoquées, notamment créer une page modifierticket.php, utiliser un lien ou bouton pour transmettre l'identifiant du ticket, et éviter l'imbriquement de formulaires. D'autres propositions soulignent des erreurs liées à $_GET['ticket'] vs $_GET['NumeroTicket'], à la gestion des guillemets dans les chaînes SQL et à la fermeture des balises de formulaire, afin d'éviter des pages vides. En cas d'erreur persistante, il est utile d’ajouter une vérification des paramètres et de sécuriser les requêtes avant de passer en mise à jour avec UPDATE.
-
ContributeurAffiche la requete mysql et essaie de l'executer directement dans phpmyadmin.
Des fois il ne te retourne pas d'erreur mais n'effectue pas la requête -
DSL g eu un gros bug, jété okupé ek mon chef lool
Je vois qu'ca a marché ci cool alors !!!
Alé a bientot les amiss !!!-
Si t'est toujour la : j 'ai une petite question
Lorsque j'effectue ma modification j'appuie sur valider la modif il me m'affiche aucune erreur mais aucune modif n'est faite pourtant il va bien cherché la page 13 ou ya mon code de mofication et il sait bien de quelle client nous parlons...
bizard t'aurais pas une idée ? -
@sniperMaintenant sa affiche bien le message comme quoi le client a été modifier mais sa ne le modifie pas!
-
-
ContributeurAh non en fait je ne pense pas que ça va marcher comme ça ..
Remplace plutôt le :<form action="page=7" id="form_nomclient" method="get">
Par :<form action="Principale.php" id="form_nomclient" method="get">
Et rajoute juste en dessous,<input type="hidden" name="page" value="7" />
Ca va permettre de renvoyer ta page en méthode GET et de pouvoir ainsi la garder-
-
Contributeur@sniperOuais ça va je commence un peu à connaitre tout ce qui concerne les formulaire et le PHP ^^
Le projet que je fais en ce moment c'est exactement ça.
Mais bon il y a encore beaucoup de choses que je maitrise pas du tout comme le MVC ou le PHP Objet.
J'en ai entendu parlé, vu un peu mais je ne m'y connais pas ^^
Donc en fait mes connaissances restent assez basiques ^^
-
-
ContributeurRemplace :
<form action="page=7" id="form_nomclient" method="get">
par :<form action="Principale.php?page=7" id="form_nomclient" method="get">
Je pense que c'est parce que le formulaire de choix de client ne renvoyait pas sur la bonne page ...
Essaie et dis moi-
-
Contributeur@sniperEssaie ma deuxième proposition qui devrait être meilleure ...
Pour répondre à ta question, (c'est bien que tu te la poses ! ^^ ) non ce n'est pas genant!
On pourrait avoir 15formulaires qui font des choses différentes sur unê même page si on veut!
Dans mon projet, avec toutes mes pages incluses dans ma page principale, je me retrouve avec 5formulaires qui font tous des choses différentes ^^
La seule chose importante est de ne pas mettre un formulaire dans un autre.
Tu peux les mettre tous à la suite mais jamais l'un dans l'autre
-
-
Contributeur<td><a href="?page=7&client=<?php echo $donnees['NomClient'];?>">Mise a jour d'un client</a></td>
Dans cette ligne en fait tu fais un lien vers ta page 7 mais la variable $donnees n'est définie nul part ... D'où l'erreur !
Ma question était sur la page des liens, comment tu définit quel client tu veux modifier?
Petite erreur (je ne sais pas si ça vient de là mais je ne pense pas) : dans ta page de lien tu met :
client=<?php echo $donnees['NomClient'];?>
Il doit donc être récupéré dans la table NomClient.
Mais quand tu récupères ta variable avec ton $_GET['client'] ben tu le met dans NumeroClient ...
PS : c'est vrai que ton tableau est bizarre .. Non pas à cause des <br> (on trouve des<br> dans des cases de tableau, j'en utilise personnellement) mais parce que ton
<td width="150" height="50" border="5" ROWSPAN="3"> n'est pas fermé avant que tu ouvres un autre <td>-
oui mais au debu j'avais mis numeroClient sachant que c'est ce champ qui determine tous les champ mais la sachant que c'est en fonction du nom client que s'affiche les autre champ j'ai voulu testé mais c'est pour sa au final j'en suis arrivé a mettre les 2 dans le liens :
<td><a href="?page=7&client=<?php echo $donnees['NumeroClient'];?>&NomClient=<?php echo $donnees['NomClient']; ?>">Mise a jour d'un client</a></td>
Comment je peux faire pour que ma ou mes variable soit definie j'ai essayé de faire un $_Get Mai sa n'a pa marché
En ce qui concerne le tableau je l'ai fait un peu vite donc c'est possible qu'il est des faute!! -
Contributeur@sniperMoi je pense qu'il faut pas mettre dans ta liste des liens un lien pour modifier ce client.
Met plutot dans ta page de modification une liste déroulante où l'utilisateur choisit le client à modifier.
Parce que sinon, quand l'utilisateur arrive sur ta page, comment il sait quel client il va modifier? Il choisit où le client à modifier?
Je te fais un ptit script à mettre dans modificationclient.php
<form action="pcincipale.php" id="form_nomclient" method="get">
<input type="hidden" name="page" value="7" />
<?php
$result = mysql_query("SELECT * FROM tbl_client");
?>
Choisissez un client à modifier : <br />
<select name="client" onchange="document.getElementById('form_nomclient').submit();">
<option value="">Choisissez un client</option>
<?php
while ( $data = mysql_fetch_array($result) ) {
echo '<option value="' . $data['NumeroClient'] . '">' . $data['NomClient'] . '</option>';
}
?>
</select>
</form>
Et après tu gardes ta requete avec le NumeroClient = $_GET['client'] -
@Passarinho44Autant pour moi : dsl je te passe mon code de ma page Modificationclient.php (la liste deroulante est bien présente ^^)
<?php require_once('connexion.php'); ?> <?php $sql=mysql_query("SELECT * FROM tb_client WHERE NumeroClient='" . $_GET['client'] . "'AND NomClient='" . $_GET['NomClient'] . "'"); $donnees = mysql_fetch_array($sql); ?> <center> <h2>Formulaire d'une mise a jour d'un client</h2> <form action="page=13&client=<?php echo $donnees['NumeroClient'];?>&NomClient=<?php echo $donnees['NomClient']; ?>" method="POST"> <fieldset id="fieldset_modif_ticket" style="width: 700px;"> <legend><h4>Modification d'un client</h4></legend> <table> <tr> <td align="right">Nom du client : </td> <td><select type="text" id="NomClient" name="NomClient"> <?php include("connexion.php"); $SQL = "SELECT AbregeClient FROM tb_client"; $res = mysql_query($SQL); while($NomClient=mysql_fetch_array($res)) { echo "<option>".$NomClient["AbregeClient"]."</option>\n";}?> </td> </tr> <tr> <td align="right">Abrégé du non du client : </td> <td><input type="text" id="AbregeClient" name="AbregeClient" value="<?php echo $donnees['AbregeClient']; ?>"/></td> </tr> <tr> <td align="right">Adresse du client : </td> <td><input type="text" id="AdresseClient1 " name="AdresseClient1" value="<?php echo $donnees['AdresseClient1']; ?>"/></td> </tr> <tr> <td align="right"> Complément d'adresse du client: </td> <td><input type="text" id="AdresseClient2" name="AdresseClient2" value="<?php echo $donnees['AdresseClient2']; ?>"/></td> </tr> <tr> <td align="right">Code Postal: </td> <td><input type="text" id="CodePostalClient" name="CodePostalClient"value="<?php echo $donnees['CodePostalClient']; ?>"/></td> </tr> <tr> <td align="right">Ville du client : </td> <td><input type="text" id="VilleClient " name="VilleClient" value="<?php echo $donnees['VilleClient']; ?>"/></td> </tr> <tr> <td align="right">Téléphone du client : </td> <td><input type="text" id="TelClient " name="TelClient" value="<?php echo $donnees['TelClient']; ?>"/></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="Valider la modification du client"/> </tr> </table> </fieldset> </form> </center>
Je pensse que tu y verra plus clair! -
Contributeur@sniperBon alors après ton
<?php
require_once('connexion.php');
?>
Tu mets le code que je t'ai mis juste avant
et après tu mets :
if ( isset($_GET['client']) ) {
<?php
$sql=mysql_query("SELECT * FROM tb_client WHERE NumeroClient='" . $_GET['client'] . "'");
$donnees = mysql_fetch_array($sql);
?>
<center>
...
// Ici tu changes rien de ce que t'as déjà mis
</center>
Et dans ta page des liens tu gardes juste le ?page=7
En arrivant sur ta page, l'utilisateur choisira le nom d'un client à modifier et le formulaire apparaitra et se remplira lorsque l'utilisateur changera dans la liste déroulante.
Essaie et dis moi si ça te convient ! :) -
@Passarinho44Voila j'ai mi sa :
<?php
require_once('connexion.php');
?>
<?php
if ( isset($_GET['client']) ) {
$sql=mysql_query("SELECT * FROM tb_client WHERE NumeroClient='" . $_GET['client'] . "'");
$donnees = mysql_fetch_array($sql);
?>
<center>
<h2>Formulaire d'une mise a jour d'un client</h2>
<form action="page=13&client=<?php echo $donnees['NumeroClient'];?>&NomClient=<?php echo $donnees['NomClient']; ?>" method="POST">
<fieldset id="fieldset_modif_ticket" style="width: 700px;">
<legend><h4>Modification d'un client</h4></legend>
<table>
<tr>
<td align="right">Nom du client : </td>
<td><select type="text" id="NomClient" name="NomClient">
<?php
include("connexion.php");
$SQL = "SELECT AbregeClient FROM tb_client";
$res = mysql_query($SQL);
while($NomClient=mysql_fetch_array($res)) {
echo "<option>".$NomClient["AbregeClient"]."</option>\n";}?>
</td>
</tr>
dans ma page des lien j'ai mi sa : <td><a href="?page=7">Mise a jour d'un client</a></td>
Mais il me di parse error a la ligne 61 de la page :modificationclient.php ( la ligne 61 c'est la toute dernier c'est </center>) donc sa ne vien pas de cette ligne
-
-
Ta page client sappel comment ??? par ce que la syntaxe c'est ça normalement :
<a href="modificationclient.php?client=<?php echo $donnees['NumeroClient'];?>">
Apré tu fé le GET sur la page Modificationclient.php
-
Ma page ou il y a tous les a href c'est ma page de tous les lien de mon site :
C'est ce que j'ai mis mais sa marche pas :
<?php require_once('connexion.php');?>
<link href="styles.css" rel="stylesheet" type="text/css">
<table align="center" width=800 cellspacing="0" cellpadding="0" border="10">
<td valign="top" width="200">
<table>
<tr><td width="150" height="50" border="5" ROWSPAN="3">
<td><a href="?page=1">Accueil</a></td>
<td><a href="?page=2">Nouveau ticket</a></td>
<td><a href="?page=4">Les tickets</a></td>
<td><a href="?page=6">Nouveau client</a></td>
<td><a href="?page=7&client=<?php echo $donnees['NumeroClient'];?>&NomClient=<?php echo $donnees['NomClient']; ?>">Mise a jour d'un client</a></td>
<td><a href="?page=8">Gestion des utilisateurs</a></td>
<td><a href="?page=9">Rechercher un ticket</a></td>
<td><a href="?page=10">Configuration</a></td>
</td></tr>
</table>
</td>
Ma page ModificationClient.php :
<?php
require_once('connexion.php');
?>
<?php
$sql=mysql_query("SELECT * FROM tb_client WHERE NumeroClient='" . $_GET['client'] . "'AND NomClient='" . $_GET['NomClient'] . "'");
$donnees = mysql_fetch_array($sql);
?>
<center>
<h2>Formulaire d'une mise a jour d'un client</h2>
<form action="page=13&client=<?php echo $donnees['NumeroClient'];?>&NomClient=<?php echo $donnees['NomClient']; ?>" method="POST">
<fieldset id="fieldset_modif_ticket" style="width: 700px;">
<legend><h4>Modification d'un client</h4></legend> -
ContributeurEn fait t'a loupé le passage où il expliquait que ses page1, page2, page3, etc sont récupérés dans sa page principale et en focntion de ça, il fait un include de sa bonne page.
Ca lui permet de garder son menu et de changer juste le centre de sa page avec la page qu'il aura choisit (donc ici son page7 lui fait un include de sa page Modificationclient.php
-
-
Oula !!
Déja dans un tableau tu ne peux pas mettre des <br>, enfin ca prend pas koi, ensuite , pourquoi il y a autant de href ????
Ce code est sur kel page ? -
ContributeurC'est normal que ta variable ne soit pas définie, tu n'a pas encore fait de requete avec quand tu lances ta page principale puisque c'est ta page d'accueil.
Quand tu lances ta page, comment tu peux savoir quel client va être modifié?-
oui nan sa sa correspond a ma page des lien de mon site :
sur le lien modificationclient tu peux voir que j'ai essayé de mettre les donnée.
et dans ma page modificationclient j'ai mi la requete:
<?php
require_once('connexion.php');
?>
<?php
$sql=mysql_query("SELECT * FROM tb_client WHERE NumeroClient='" . $_GET['client'] . "'AND NomClient='" . $_GET['NomClient'] . "'");
$donnees = mysql_fetch_array($sql);
?>
<center>
<h2>Formulaire d'une mise a jour d'un client</h2>
<form action="page=13&client=<?php echo $donnees['NumeroClient'];?>&NomClient=<?php echo $donnees['NomClient']; ?>" method="POST">
P.s / J'ai aussi essayé de mettre la requete direct dans la page principal.php mais sa bugué toujour.
-
-
Re tooo !!! lol
-
ContributeurJe suis par là moi si je peux aider ^^
-
ah merci
Je t'explique trés rapidement :
Je suis en train de recréer un lient "modificationclient" que quand je clique dessus j'arrive sur un formulaire exactement dans le meme style que pour modification ticket. la seul difference c'est que dans ce formulaire modification client j'ai une liste deroulante et c'est que grace au nom du client que les donnée sont determiné dans les autre champs.
J'ai donc essayé de reprendre le modele pour modification ticket : mais c'est au niveau du lien lorsque que je met la souri dessu il me trouve pas le "nomclient"
http://localhost/test/Principal.php?page=7&client=Notice Undefined variable:donnees in F:\Program Files\wamp\www\test\Principal.php</b>
voici mon bou de code :
<?php require_once('connexion.php');?>
<link href="styles.css" rel="stylesheet" type="text/css">
<table align="center" width=800 cellspacing="0" cellpadding="0" border="10">
<td valign="top" width="200">
<table>
<tr><td width="150" height="50" border="5" ROWSPAN="3"><br><br>
<td><a href="?page=1">Accueil</a></td>
<td><a href="?page=2">Nouveau ticket</a></td>
<td><a href="?page=4">Les tickets</a></td>
<td><a href="?page=6">Nouveau client</a></td>
<td><a href="?page=7&client=<?php echo $donnees['NomClient'];?>">Mise a jour d'un client</a></td>
<td><a href="?page=8">Gestion des utilisateurs</a></td>
<td><a href="?page=9">Rechercher un ticket</a></td>
<td><a href="?page=10">Configuration</a></td>
-
-
ok !!!
No soucyyy !!
++ -
Alors ca a avancer ici ?? ^^
J'ai pa eu le courage de tout lire loool !!!
-
ContributeurOuais c'est qu'un détail ^^
Bon moi je retourne à ma note de synthèse parce qu'il y a du boulot ! :s -
ContributeurEuh ... :s
Essaie de mettre le
if ( isset($_GET['modif']) and $_GET['modif'] == "ok" ) { print '<script language="javascript"> alert("ticket modifié !"); location.href = "Principale.php?page=4"; </script>'; }
A la fin de la page.
En fait il lance ça alors que ta page n'est pas encore chargée c'est pour ça. -
ContributeurOui dsl j'ai fait une erreur complètement stupide ... -____-
Dans MiseAJour.php, remplace :location.href = "Principale.php?page=4?modif=ok";
par :location.href = "Principale.php?page=4&modif=ok";
Ca sera mieux normalement ... -
Contributeurremplace la par :
if ( isset($_GET['modif']) and $_GET['modif'] == "ok" ) {
Pour ton histoire de liste déroulante, il suffit de la mettre dans un fom method="get" et que quand il choisit un client, ça fait une requete avec ce client ! :)
Essaie déjà de faire ça avec un input type="submit" sous la liste déroulante qui execute ta requete avec le nom du client et qui remplit le champs du dessous
Une fois que tout ça marchera (et pas avant ! :p ), je te montrerai comment ne plus avoir besoin du bouton pour que juste en changeant dans la liste, ça change la valeur du champs en dessous :) -
ContributeurAh pardon je l'avais pas vu ^^
Oui c'est possible ^^
Remplace tout le :print '<script language="javascript"> alert("Ticket Modifié"); location.href = "Principale.php?page=4"; </script>';
Par :
print '<script language="javascript"> location.href = "Principale.php?page=4?modif=ok"; </script>';
Puis dans ta page4, le tableau des tickets, tu rajoutes ça :
if ( $_GET['modif'] == "ok" ) { print '<script language="javascript"> alert("ticket modifié !"); location.href = "Principale.php?page=4"; </script>'; }
Dis moi si c'est bon ^^-
non lol !!
il aime pas cette ligne
Notice: Undefined index: modif in F:\Program Files\wamp\www\test\pages\LesTickets.php on line 35
if ( $_GET['modif'] == "ok" ) {
j'en profite pour te demandé aussi dans ma page nouveaux ticket : j'un une liste deroulante avec tous les nom des client en dessou j'ai une 2eme champ interlocuteur client et un client peut avoir 1 ou plusieur interlocuteur je voudrais que quand je choisi un client sa m'affiche tous les interlocuteur correspondant a ce client dans le champ interlocuteur...
mais bon j'ai une petite idée de comment je vais faire lol donc pour l'instemp t'en preocupe pas lol desolé c'est juste au cas ou !!
-
-
ContributeurBen moi je connais pas flash ^^
Moi aussi mon projet est bien avancé ^^
Bon ben bon courage pour la suite et si tu as d'autres soucis n'hésites pas ! :)
Tu crées une discussion et tu m'envoies le lien par mp! :)
Et va faire un tour sur le site du zero comme je t'ai dit : pour apprendre le PHP/MySQL y'a pas mieux ! :) -
ContributeurSi si c'est intéressant mais j'ai été un peu vite par rapport à ce qu'ils ont prévu et hier et aujourd'hui je suis tout seul à l'informatique donc bon ... ^^
A partir de demain je vais avoir de nouveaux trucs à faire ^^
En attendant j'avance ma note de synthèse ^^
Je suis sur la région parisienne pour mon stage (pour être prêt de ma copine ^^) mais sinon j'habite sur Nantes.
Il est tôt ton stage pour un stage de 1ere année ! Normalement c'est à la fin de l'année O_o -
ContributeurTout d'abord je vais t'expliquer le ptit + que je t'ai mis ^^
Alors :
print '<script language="javascript"> ==> Ouvre une balise javascript
alert("Ticket Modifié"); ==> ouvre une popup pour afficher un message d'information comme quoi le ticket est bien modifié
location.href = "Principale.php?page=4"; ==> redirige vers la page de la liste des tickets (tu peux la changer si tu veux ^^ )
</script>'; ==> Ferme la balise script
Voilà après libre à toi de le laisser ou pas ^^
Sinon je suis étudiant (actuellement en stage mais bon je me fais un peu chier, voilà pourquoi je suis sur CCM ^^ )
Je suis en BTS Info de Gestion 2eme année
Et toi tu fais quoi?
- 1
- 2
- 3
- 4