Recherche dynamiquement dans ma base (mysql), maj

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Recherche dynamiquement dans ma base (mysql), maj

par guigui69 » 03 avr. 2008, 10:52

Re bonjour à tous, j'avance dans ma page

Code : Tout sélectionner

<?php session_start(); ?> <?php if(!isset($_SESSION['login'])) { include('login.php'); echo $_SESSION['login']; echo 'Vous n\'êtes pas autoris´ à acceder à cette zone'; echo '<br>'; exit; } else { echo '<div id="auth"> Bienvenue sur l\'espace restreint</div> '; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <title>fiche réclamation</title> <script type='text/javascript'> function getXhr(){ var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr; } /** * Méthode qui sera appelée sur le click du bouton */ function go(){ var xhr = getXhr(); document.getElementById('reclamation').style.display = ''; // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; // On se sert de innerHTML pour rajouter les options a la liste document.getElementById('information').innerHTML = leselect; } } // Ici on va voir comment faire du post xhr.open("POST","ajax.php",true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments // ici, l'id de l'auteur idauteur = document.getElementById('code_client').value; //alert(idauteur); xhr.send("idauteur="+idauteur); } </script> <style type="text/css" title="mes_styles" media="all"> <!-- body{ font-family: Verdana, Geneva, Arial, sans-serif; font-size: small; } table { border: medium solid #000000; border-collapse: collapse; width=1000; } td, th { width=1000; border: medium solid #000000; font-family: Verdana, Geneva, Arial, sans-serif; font-size: small; } --> </style> </head> <body> <?php If (isset($_POST['re_valider'])) { // On commence par récupérer les champs if(isset($_POST['id_client'])) $id_client=$_POST['id_client']; else $id_client=""; if(isset($_POST['id_user'])) $id_user=$_POST['id_user']; else $id_user=""; if(isset($_POST['id_critere'])) $id_critere=$_POST['id_critere']; else $id_critere=""; if(isset($_POST['des_reclamation'])) $des_reclamation=$_POST['des_reclamation']; else $des_reclamation=""; if(isset($_POST['cause_reclamation'])) $cause_reclamation=$_POST['cause_reclamation']; else $cause_reclamation=""; if(empty($id_client) OR empty($des_reclamation) OR empty($cause_reclamation)) { echo '<font color="red">Attention, <b>tout les champs doivent etre remplis</b> !</font>'; echo '<INPUT TYPE="BUTTON" VALUE=" Retour "onClick="history.back()">'; echo '<br>'; } else $server="localhost"; $user="root"; $pass="BH65fKhQ"; $db="qualite"; mysql_connect($server,$user,$pass) or die('erreur de connexion'); mysql_select_db($db) or die ('impossible de se connecter a la base'); $date = date("Y-m-d"); $heure = date("H:i"); $requete = "INSERT INTO `produit` (id_reclamation, des_reclamation, date_reclamation, heure_reclamation, cause_reclamation, id_user, id_client, id_critere) VALUES ('', '$des_reclamation', '$date', '$heure', '$cause_reclamation', '$id_user', '$id_client', '$id_critere')"; echo '<br>'; echo $requete; //$query2=mysql_query($requete) or die ('erreur'); echo 'Vos infos on &eacute;t&eacute; ajout&eacute;es.<br>'; mysql_close(); // on ferme la connexion //echo '<FORM ACTION="ajoutpdrmat.php">'; } else { ?> <input type="text" name="code_client" id="code_client" value="" maxlength="11" onKeyUp="go()"></td> <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="reclamation" > <div id='information'> Veuillez rentrer votre code client, Merçi!!! :) </div> <div id="reclamation" style="display: none" > <table> <tr> <td colspan="2"><TEXTAREA name="des_reclamation" rows="3" cols="120"><? if(isset ($_POST["des_reclamation"])) echo $_POST["des_reclamation"]; else echo "description";?></TEXTAREA> </tr> <tr> <td><input type="text" name="cause_reclamation" value="<?echo $_POST["cause_reclamation"];?>" maxlength="50"> </tr> </table> <input type="submit" name="re_valider" id="re_valider" value="Valider" /> </form> </div> <?php } print_r($_POST) ?> </body> </html>
J'ai rajouter un un div réclamation pour qu'il n'apparaisse seulement quand la fonction go() est appelé problème ça ne fonctionne pas :( Quel sont les erreurs que j'ai commises?
document.getElementById('reclamation').style.display = '';
Par défaut cela ne s'affiche pas et ça fonctionne, mais dès que j'appelle la fonction go cela ne la ré affiche pas :(.

Merci d'avance pour votre aide

guigui69

-----------------------------------------------------
En fait j'ai trouvé mon erreur :)

par guigui69 » 01 avr. 2008, 15:54

Ok merci pour ces infos.

Si tu as quelque exemple je suis preneur (pour voir a quoi ça devrait ressembler)

Merci

guigui69

----------------------------------------------------

MAJ

Code : Tout sélectionner

<html> <head> <title></title> <script type='text/javascript'> function getXhr(){ var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr; } /** * Méthode qui sera appelée sur le click du bouton */ function go(){ var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; // On se sert de innerHTML pour rajouter les options a la liste document.getElementById('information').innerHTML = leselect; } } // Ici on va voir comment faire du post xhr.open("POST","ajax.php",true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments // ici, l'id de l'auteur idauteur = document.getElementById('code_client').value; xhr.send(idauteur); } </script> </head> <body> <input type="text" name="code_client" id="code_client" value="" maxlength="11" onKeyUp=go()></td> <div id='information' style='display:inline'> ICI la réponse: </div> <?php print_r($_POST) ?> </body> </html>

Code : Tout sélectionner

<?php if(isset($_POST["idauteur"])){ mysql_connect("localhost","root","*****"); mysql_select_db("qualite"); $res = mysql_query("SELECT nom_client, tel_client, fax_client, contact_client FROM client WHERE code_client=".$_POST["idauteur"]." ORDER BY nom_client"); while($row = mysql_fetch_assoc($res)){ ?> ENCORE UN TEST <input type="text" name="nom_client" id="nom_client" value="<?echo $row["nom_client"];?>" maxlength="32"></td> <input type="text" name="contact_client" id= "contact_client"value="<?echo $row["contact_client"];?>" maxlength="32"></td> <input type="text" name="tel_client" id ="tel_client"value="<?echo $row["tel_client"];?>" maxlength="32"></td> <input type="text" name="fax_client" id="fax_client" value="<?echo $row["faxs_client"];?>" maxlength="32"></td> <?php } } ?>

J'ai essayé ceci comme code mais ca na pas l'air de marcher.

Ou sont mes erreurs?

Merci

guigui69
Merci

par Ryle » 01 avr. 2008, 15:47

La solution simple consiste à leur mettre un bouton de validation qu'ils cliqueront après avoir saisi le code client, et qui aura pour effet de recharger la page avec les données qui vont bien dans les champs correspondant.

La solution javascript qui te permet de faire cela sans rechargement nécessite de passer par ajax. Il te faut dans un premier temps déterminer à partir de quand est ce qu'il faut aller chercher les information (avec un bouton éventuellement, ou lorsque l'utilisateur relache une touche et que le champ comporte tant de caractère, etc.).

Lorsque tu as le quand, il te faut une fonction javascript qui va envoyer l'info du code client au serveur. Ce dernier va générer une page avec les informations nécessaires pour remplir tes champs (au format xml ou texte selon ce qui t'arrange), que javascript va lire.

Il ne te restera plus alors qu'à parser les données récupérée du serveur pour alimenter chacun de tes champs avec la donnée qui va bien :)

Regarde dans la FAQ ou même dans ce forum pour plus d'infos sur Ajax :)

Recherche dynamiquement dans ma base (mysql), maj

par guigui69 » 01 avr. 2008, 15:38

Bonjour à tous,

Je réalise une page web pour mon entreprise pour le suivi des réclamations.
Sur cette page en question je voudrait mettre en place un système de recherche dans ma base de manière dynamique.

J'entend par la, que les personnes qui vont utiliser la page web connaisse le code client en question et je voudrait que dans le champ ou ils tapent le code client, automatiquement en dessous cela remplisse les autres cases (nom prénom etc...) Je pense que c'est réalisable en javascript mais je n'ai pas trouvé sur internet .

Si quelqu'un aurait une astuce, une aide pour m'éclairer je suis preneur.

Merci d'avance pour votre aide

guigui69