Afficher les résultat de mon formulaire sur la même page
Résolu
fad2015
Messages postés
38
Date d'inscription
Statut
Membre
Dernière intervention
-
fad2015 Messages postés 38 Date d'inscription Statut Membre Dernière intervention -
fad2015 Messages postés 38 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis débutant en php, j'arrive à insérer, afficher, supprimer, modifier les informations de ma base de données.
j'ai crée un formulaire qui contient qu'un seul champs de saisie(ville) et un bouton valider(submit).
J'aimerais qu'a chaque fois que je choisis une ville et clique sur le bouton envoyé, que le résultat de mon ' select * from client where ville="'.$_POS['ville'].'" ' s'affiche dans un tableau sous le même formulaire.
j'aimerais faire ça sur la même page sans créer une page traitement.php à coté.
j'aimerais en avoir une idée un peu plus claire car ça fait des heures que j'arrive pas à le faire SVP!!
merci d'avance
mon code affichage.php
EDIT : Ajout des balises de code.
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
je suis débutant en php, j'arrive à insérer, afficher, supprimer, modifier les informations de ma base de données.
j'ai crée un formulaire qui contient qu'un seul champs de saisie(ville) et un bouton valider(submit).
J'aimerais qu'a chaque fois que je choisis une ville et clique sur le bouton envoyé, que le résultat de mon ' select * from client where ville="'.$_POS['ville'].'" ' s'affiche dans un tableau sous le même formulaire.
j'aimerais faire ça sur la même page sans créer une page traitement.php à coté.
j'aimerais en avoir une idée un peu plus claire car ça fait des heures que j'arrive pas à le faire SVP!!
merci d'avance
mon code affichage.php
<form action="" method=""> VILLE <input type="text" name="annee"> <input type="submit" value="RECHERCHER"> <?php if(isset($_POST['ville'] ) ) $req='select * from client where ville="'.$_POST['ville'].'"'; $res=mysql_query($req); // lancement de la requêtre ?> <table border=1 position="center"> <tr> <th> <!-- entête de mon tableau--> </th> </tr> <?php //lancement de l'entête de la boucle while( $data=mysql_fetch_array($res)) { ?> <tr> td><font size=2><?php echo $data['nom']; ?></font></td> <td><font size=2><?php echo $data['prenom'];?></font></td> <td><font size=2><?php echo $data['date nais']; ?></font></td> <td><font size=2><?php echo $data['ville']; ?></font></td> <td><font size=2><?php echo $data['portable'];?></font></td> <td><font size=2><?php echo $data['fixe']; ?></font></td> <td><font size=2><?php echo $data['email']; ?></font></td> <td><font size=2><?php echo $data['code postal'];?></font></td> <td><font size=2><?php echo $data['adresse']; ?></font></td> </tr> <?php } ?> </table> </form>
EDIT : Ajout des balises de code.
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
A voir également:
- Afficher les résultat de mon formulaire sur la même page
- Whatsapp formulaire opposition - Guide
- Comment supprimer une page sur word - Guide
- Formulaire de réclamation facebook - Guide
- Resultat foot - Télécharger - Vie quotidienne
- Afficher google en page d'accueil - Guide
4 réponses
Bonjour,
Tu pourrais aussi utiliser de l'AJAX pour actualiser le contenu de ta liste .... et garder ton Submit pour faire autre chose.....
Par exemple (codé de tête... il peut y avoir quelques erreurs...)
affichage.php
rechercheVille.ajx.php
NB : Pour faire fonctionner le script Javascript .... il faut INCLURE la librairie JQUERY dans le fichier affichage.php .
Téléchargeable ici : http://code.jquery.com/jquery-1.11.2.js
NB2 : Il faut inclure le fichier de connexion à ta BDD dans la page rechercheVille.ajx.php
Cordialement,
Jordane
Tu pourrais aussi utiliser de l'AJAX pour actualiser le contenu de ta liste .... et garder ton Submit pour faire autre chose.....
Par exemple (codé de tête... il peut y avoir quelques erreurs...)
affichage.php
<!-- INCLURE LE FICHIER JQUERY --> <?php // Requête pour récupérer la liste des villes // enregistrées dans la BDD $sql='SELECT DISTINCT ville FROM client GROUP BY ville ORDER BY ville '; $arrVilles=mysql_query($sql); // lancement de la requêtre ?> <form action="" method="post"> VILLE <select name="ville" id="sel_ville" onclick="afficheVille(this.value);"> <option value=""></option> <?php while( $data=mysql_fetch_array($arrVilles)) { $ville = $data['ville']; echo "<option value='$ville'>$ville</option>"; } ?> </select> <script type="text/javascript"> //Script permettant de rafraichir la page //en fonction de la ville selectionnée // Necessite la librairie JQUERY function afficheVille(ville){ urlAjx = "rechercheVille.ajx.php"; $.ajax({ type: "POST", url:urlAjx, data: "ville="+ville, async: false, dataType: "html", success: function(data){ $("#tbody_detail").html(data); }, error:function(reponse){ alert('error ' + reponse); } }); } </script> <input type="submit" value="RECHERCHER"> <table border=1" id="tbl_donnees"> <thead> <tr> <th> <!-- entête de mon tableau--> </th> </tr> </thead> <tbody id="tbody_detail"> </tbody> </table> </form>
rechercheVille.ajx.php
<?php //rechercheVille.ajx.php //------------------------------------------------------ // >>>>> Penser à Inclure le fichier de connexion à la BDD //------------------------------------------------------ $result=""; $ville=isset($_POST['ville'])?$_POST['ville']:NULL; if($ville){ $req='select * from client where ville="'.$_POST['ville'].'"'; $res=mysql_query($req); // lancement de la requêtre while( $data=mysql_fetch_array($res)) { $result .="<tr> <td><font size=2>".$data['nom']."</font></td> <td><font size=2>".$data['prenom']."</font></td> <td><font size=2>".$data['date nais']."</font></td> <td><font size=2>".$data['ville']."</font></td> <td><font size=2>".$data['portable']."</font></td> <td><font size=2>".$data['fixe']."</font></td> <td><font size=2>".$data['email']."</font></td> <td><font size=2>".$data['code postal']."</font></td> <td><font size=2>".$data['adresse']."</font></td> </tr>"; } } print ($result); ?>
NB : Pour faire fonctionner le script Javascript .... il faut INCLURE la librairie JQUERY dans le fichier affichage.php .
Téléchargeable ici : http://code.jquery.com/jquery-1.11.2.js
NB2 : Il faut inclure le fichier de connexion à ta BDD dans la page rechercheVille.ajx.php
Cordialement,
Jordane
voici le code le ma page affiche.php
EDIT : AJOUT (encore...) du LANGAGE dans les balises de code.
<script type="text/javascript" src="jquery.js"> <?php // on se connecte à notre base $base = mysql_connect ('localhost', 'root', ''); if(!$base) {die('Erreur de connexion au serveur '.mysql_error());} $sel=mysql_select_db ('mabase', $base) ; if(!$sel) {die('Erreur de connexion '.mysql_error());} //else{echo ' connexion au server reussit';} // Requête pour récupérer la liste des villes // enregistrées dans la BDD $sql='SELECT DISTINCT ville FROM client GROUP BY ville ORDER BY ville '; $arrVilles=mysql_query($sql); // lancement de la requêtre ?> <form action="" method="post"> VILLE <select name="ville" id="sel_ville" onclick="afficheVille(this.value);"> <option value=""></option> <?php while( $data=mysql_fetch_array($arrVilles)) { $ville = $data['ville']; echo "<option value='$ville'>$ville</option>"; } ?> </select> <script type="text/javascript"> //Script permettant de rafraichir la page //en fonction de la ville selectionnée // Necessite la librairie JQUERY function afficheVille(ville){ urlAjx = "rechercheVille.ajx.php"; $.ajax({ type: "POST", url:urlAjx, data: "ville="+ville, async: false, dataType: "html", success: function(data){ $("#tbody_detail").html(data); }, error:function(reponse){ alert('error ' + reponse); } }); } </script> <input type="submit" value="RECHERCHER"> <table border=1" id="tbl_donnees"> <thead> <tr> <th> <font size=2 color="black">NOM </font></th> <th> <font size=2 color="black">PRENOM</font> </th> <th><font size=2 color="black"> NAISSANCE </font></th> <th> <font size=2 color="black">VILLE</font> </th> <th> <font size=2 color="black">PORTABLE</font> </th> <th> <font size=2 color="black">FIXE</font> </th> <th> <font size=2 color="black">EMAIL</font> </th> <th> <font size=2 color="black">CODE POSTAL </font></th> <th> <font size=2 color="black">ADRESSE</font> </th> <th> <font size=2 color="black">DOSSIER TRAITE</font> </th><th> <font size=2 color="black">CV </font></th> </tr> </thead> <tbody id="tbody_detail"> </tbody> </table> </form>
EDIT : AJOUT (encore...) du LANGAGE dans les balises de code.
et celui de ma page rechercheVille.ajx.php
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');
if(!$base)
{die('Erreur de connexion au serveur '.mysql_error());}
$sel=mysql_select_db ('mabase', $base) ;
if(!$sel)
{die('Erreur de connexion '.mysql_error());}
//else{echo ' connexion au server reussit';}
?>
<?php
//rechercheVille.ajx.php
//------------------------------------------------------
// >>>>> Penser à Inclure le fichier de connexion à la BDD
//------------------------------------------------------
$result="";
$ville=isset($_POST['ville'])?$_POST['ville']:NULL;
if($ville){
$req='select * from client where ville="'.$_POST['ville'].'"';
$res=mysql_query($req); // lancement de la requêtre
while( $data=mysql_fetch_array($res)) {
$result .="<tr>
<td><font size=2>".$data['nom']."</font></td>
<td><font size=2>".$data['prenom']."</font></td>
<td><font size=2>".$data['date nais']."</font></td>
<td><font size=2>".$data['ville']."</font></td>
<td><font size=2>".$data['portable']."</font></td>
<td><font size=2>".$data['fixe']."</font></td>
<td><font size=2>".$data['email']."</font></td>
<td><font size=2>".$data['code postal']."</font></td>
<td><font size=2>".$data['adresse']."</font></td>
</tr>";
}
}
print ($result);
?>
Le script de "refresh".. tu veux dire le script qui fait appel à l'ajax ??
ok..
Donc.. que tu dis FIREBUG lorsque tu affiches la page ?
As tu bien créé le fichier rechercheVille.ajx.php ?
L'as tu mis au même niveau (dans tes répertoires) que la page actuelle ?
Eventuellement... déplaces le script javascript TOUT en bas de ta page ( après ton </form> )
ok..
Donc.. que tu dis FIREBUG lorsque tu affiches la page ?
As tu bien créé le fichier rechercheVille.ajx.php ?
L'as tu mis au même niveau (dans tes répertoires) que la page actuelle ?
Eventuellement... déplaces le script javascript TOUT en bas de ta page ( après ton </form> )
Tu peux mettre le code suivant dans une page et l'ouvrir avec ton navigateur pour voir ce qui se passe ?
Ca permettra de s'assurer que Jquery est bien là...
<html> <head> <title>TEST</title> </head> <body> <script src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ alert ("Jquery OK"); }); </script> </body> </html>
Ca permettra de s'assurer que Jquery est bien là...
Waouh! incroyable!!!!!!!!!!!!!!!!!!!!!
Toutes ces heures pour juste une balise oublié.. buffffff
Franchement je te remercie infiniment, tu ne peux pas comprendre à quel point je suis content ce soir.
Que Dieu te bénisse pour ta sympathie et ta générosité.
Là je vais prendre des cours d'ajax en ligne pour mieux me former.
merciiiiiii.....
Toutes ces heures pour juste une balise oublié.. buffffff
Franchement je te remercie infiniment, tu ne peux pas comprendre à quel point je suis content ce soir.
Que Dieu te bénisse pour ta sympathie et ta générosité.
Là je vais prendre des cours d'ajax en ligne pour mieux me former.
merciiiiiii.....
Oui je le ferai, j'ai par-contre une dernière question à poser.
j'ai passé énormément de temps à réfléchir sans trouve de réponse.
Dans mon tableau j'ai créé une cellule qui doit contenir des case à cocher devant chaque client. cela devrait permettre de cocher la case lorsqu'on traite le dossier d'un client et de cliquer sur le bouton submit qui vas appeler un fichier "valider.php"
et informer la BD que ce client est validé.
mais quand j'insère la case à cocher de la façon suivante, ça génère une erreur:
J'ai vraiment besoin de résoudre ce problème, parce que c'est ça mon vrai objectif.
si tu as une idée par-rapport à ça j'en serai super ravi
merci d'avance.
j'ai passé énormément de temps à réfléchir sans trouve de réponse.
Dans mon tableau j'ai créé une cellule qui doit contenir des case à cocher devant chaque client. cela devrait permettre de cocher la case lorsqu'on traite le dossier d'un client et de cliquer sur le bouton submit qui vas appeler un fichier "valider.php"
et informer la BD que ce client est validé.
mais quand j'insère la case à cocher de la façon suivante, ça génère une erreur:
while( $data=mysql_fetch_array($res)) {
$result .="
<tr>
<td><font size=2>".$data['nom']."</font></td>
<td><font size=2>".$data['prenom']."</font></td>
<td><font size=2>".$data['date nais']."</font></td>
<td><font size=2>".$data['ville']."</font></td>
<td><font size=2>".$data['portable']."</font></td>
<td><font size=2>".$data['fixe']."</font></td>
<td><font size=2>".$data['email']."</font></td>
<td><font size=2>".$data['code postal']."</font></td>
<td><font size=2>".$data['adresse']."</font></td>
<td><INPUT type="checkbox" value=<?php echo $data['nom'];?> ></td>
</tr>";
}
J'ai vraiment besoin de résoudre ce problème, parce que c'est ça mon vrai objectif.
si tu as une idée par-rapport à ça j'en serai super ravi
merci d'avance.
'lut, tout simplement tu peux vérifier la présence des paramètres de form grâce à un
ifet faire la requête & l'affichage s'il y a lieu:
if (isset($_POST['ville'])) { // Ta requête & affichage }Remarque importante: si j'accède à ta page via cette adresse:
mapage.php?ville=%22%22%3B%20drop%20table%20client%3B, ta table
clientest supprimée: c'est une injection SQL, et ça fait mal. Pour se protéger, il faut utiliser les requêtes préparées, que les fonctions
mysql_*n'ont pas en plus d'être obsolètes depuis PHP5.5. Si tu t'en sers, passe a PDO ou mysqli.
Merci pour l'attention que tu portes à ma demande!!
j'ai déjà tenté ça, mais ça ne répond pas correctement à ma demande.
j'explique un peu plus clairement:
j'ai des info dans une BD, un champs ville sur mon formulaire et un bouton ok. j'aimerais que lorsque je choisis une ville et clique sur ok, que les info de ma BD soient afficher dans une tableau juste en bas du formulaire. ( c'est un peu comme si on voulait afficher la liste des clients en fonction des villes)
merci d'avance
voici un aperçu de mon code:
<?php
if(isset($_POST['ville'] ) )
$req='select * from client where ville="'.$_POST['ville'].'"';
$res=mysql_query($req); // lancement de la requêtre
?>
<table border=1 position="center">
<tr>
<th>
<!-- entête de mon tableau-->
</th>
</tr>
<?php
//lancement de l'entête de la boucle
while( $data=mysql_fetch_array($res))
{
?>
<tr>
td><font size=2><?php echo $data['nom']; ?></font></td>
<td><font size=2><?php echo $data['prenom'];?></font></td>
<td><font size=2><?php echo $data['date nais']; ?></font></td>
<td><font size=2><?php echo $data['ville']; ?></font></td>
<td><font size=2><?php echo $data['portable'];?></font></td>
<td><font size=2><?php echo $data['fixe']; ?></font></td>
<td><font size=2><?php echo $data['email']; ?></font></td>
<td><font size=2><?php echo $data['code postal'];?></font></td>
<td><font size=2><?php echo $data['adresse']; ?></font></td>
</tr>
<?php
}
?>
</table>
</form>
j'ai déjà tenté ça, mais ça ne répond pas correctement à ma demande.
j'explique un peu plus clairement:
j'ai des info dans une BD, un champs ville sur mon formulaire et un bouton ok. j'aimerais que lorsque je choisis une ville et clique sur ok, que les info de ma BD soient afficher dans une tableau juste en bas du formulaire. ( c'est un peu comme si on voulait afficher la liste des clients en fonction des villes)
merci d'avance
voici un aperçu de mon code:
<?php
if(isset($_POST['ville'] ) )
$req='select * from client where ville="'.$_POST['ville'].'"';
$res=mysql_query($req); // lancement de la requêtre
?>
<table border=1 position="center">
<tr>
<th>
<!-- entête de mon tableau-->
</th>
</tr>
<?php
//lancement de l'entête de la boucle
while( $data=mysql_fetch_array($res))
{
?>
<tr>
td><font size=2><?php echo $data['nom']; ?></font></td>
<td><font size=2><?php echo $data['prenom'];?></font></td>
<td><font size=2><?php echo $data['date nais']; ?></font></td>
<td><font size=2><?php echo $data['ville']; ?></font></td>
<td><font size=2><?php echo $data['portable'];?></font></td>
<td><font size=2><?php echo $data['fixe']; ?></font></td>
<td><font size=2><?php echo $data['email']; ?></font></td>
<td><font size=2><?php echo $data['code postal'];?></font></td>
<td><font size=2><?php echo $data['adresse']; ?></font></td>
</tr>
<?php
}
?>
</table>
</form>
Pense a utiliser les balises < code > sur le forum s'il te plaît.
Il manque des accolades: une ouvrante après le
Sinon, seulement la ligne en dessous du if aura une exécution conditionnelle; avec ton code actuel tu auras une erreur disant que
J'insiste sur ma remarque: les fonctions
Il manque des accolades: une ouvrante après le
if, et une fermante après la fermeture du tableau.
Sinon, seulement la ligne en dessous du if aura une exécution conditionnelle; avec ton code actuel tu auras une erreur disant que
$reqn'existe pas.
J'insiste sur ma remarque: les fonctions
mysql_*c'est le mal.
Tu as ajouté le fichier de connexion à ta BDD dans le fichier php ajax et dans ta page affichage.php ?
Tu vois bien la liste déroulante quand même ?
De toutes façons.. sans un DUMP de ta BDD (du moins.. la table CLIENT ) et sans savoir comment tu as inclus mon code dans ton site.. impossible pour moi de t'en faire plus
J'ai aussi ajouté le fichier de connexion aux deux pages.
Mais je ne vois pas la liste déroulante.
Bon c'est pas grave je vais chercher encore plus loin, voir même m'initier en Ajax
merci pour le coup de main c'est sympa
Vide le cache de ton navigateur et réaffiche ta page ....
(pour vider le cache... CTRL + F5 )
Au passage .. installes, si ne c'est pas déjà fait, le plugin FireBug pour FireFox et lances... cela te permettra de voir d'éventuelles erreurs de script javascript et/ou Ajax.
--> Un petit tuto pour savoir comment l'utiliser : http://openclassrooms.com/courses/firebug-une-merveille-de-plus-pour-firefox
je me disais aussi la même chose, je devrais au moins voir la liste déroulant mais c'est pas le cas.
j'ai observé un peu ton code et je me demandé si ce problème ne venait pas de l'instruction
mais bon je n'en sais pas trop! mdr..
EDIT : Ajout (ENCORE.....) des balises de code !