Résolu Ajax Probleme avec le $.post

Solutions (1)
Tags :
  • Ajax
  • Html
  • Php
|
Bonjour communauté,
Voici mon problème, je tente de faire un autocompletion sur le champs d'un formulaire, ce champs doit afficher les noms et prénoms des élèves selon leur établissement. Voici mon code html:

  1. <form id="form_1075338" class="appnitro" method="post" autocomplete="off" action="">
  2. <div class="form_description">
  3. <h2>Ajouter un nouveau payement de scolarité.</h2>
  4. <p>Les champs avec les asterix (<span style="color: red;">*</span>) sont obligatoires.</p>
  5. </div>
  6. <ul >
  7.  
  8. <li id="li_3" >
  9. <label class="description" for="element_3">Elève<p style="color: red; display: inline-table;">*</p> </label>
  10. <div>
  11. [color=#121656]<input id="inputString" name="element_3" class="element text medium" type="text" maxlength="300" value=""/> [/color]
  12. [color=#c10f0b]<input id="inputId" name="element_6" class="element text medium" type="hidden" maxlength="300" value="<?php echo $_SESSION['idetablissement'] ?>"/> [/color]
  13. </div><p class="guidelines" id="guide_3"><small>Veuillez entrer le nom de l'élève concerné</small></p>
  14. <div class="suggestionsBox" id="suggestions" style="display: none;"> <!-- bloc contenant les eventuelles suggestions -->
  15. <img src="image/upArrow.png" style="position: relative; top: -12px; left: 3px;" alt="upArrow" /> <!-- image de la fleche vers le haut -->
  16. <div class="suggestionList" id="autoSuggestionsList"><!-- liste contenant les suggestions -->
  17.  
  18. </div>
  19. </div>
  20. </li>


la zone bleu représente le champs de l'autocompletion et le zone rouge représente l'id de l'établissement qui est doit être aussi envoyé au fichier ajax.php qui doit traiter la requête en fonction de cet id. Mon problème est que je sais pas comment transmettre cette variable au fichier ajax.php. Aidez moi SVP :??:  :??:  :??: .
Voici mon code autocomplete.js :

  1. function lookup(inputString) {
  2. if(inputString.length == 0) { // si le champs txte est vide
  3. $('#suggestions').hide(); // on cache les suggestions
  4. } else { // sinon
  5. $.post("modules/search/ajax.php", {queryString: ""+inputString+""}, function(data){ // on envoit la valeur du champ texte dans la variable post queryString au fichier ajax.php
  6. if(data.length >0) {
  7. $('#suggestions').show(); // si il y a un retour, on affiche la liste
  8. $('#autoSuggestionsList').html(data); // et on remplit la liste des données
  9. }
  10. });
  11. }
  12. }
  13.  
  14. function fill(thisValue) { // remplir le champ texte si une suggestion est cliquée
  15. $('#inputString').val(thisValue);
  16. setTimeout("$('#suggestions').hide();", 200);
  17. }
  18.  
  19. $(document).ready( function () {
  20. $("input#inputString").keyup( function() { // si on presse une touche du clavier en étant dans le champ texte qui a pour id inputString
  21. lookup($(this).val())
  22. });
  23.  
  24. $("input#inputString").blur( function() { // si le champs texte perd le focus
  25. fill()
  26. });
  27. });


Et voici mon code ajax.php en charge des requetes:

  1. $link = mysql_connect("localhost", "root", "")
  2. or die("Impossible de se connecter : " . mysql_error());
  3. mysql_select_db("schooldb",$link);
  4. //$ideta = $_SESSION['idetablissement'];
  5. // echo $ideta;
  6. $queryString2;
  7. // si une variable queryString a été posté
  8. if(isset($_POST['queryString2'])) {
  9. $queryString2 = $_POST['queryString2'];
  10. $queryId = $_POST['queryId'];
  11. // si la longueur du contenu de la variable est superieur à 0
  12. if(strlen($queryString2) > 0) {
  13.  
  14. // requete sql à personnaliser pour correspondre à votre base de données
  15. [color=#06841e]$result = mysql_query("SELECT CONCAT(e.nom_ele,' ',e.prenom_ele) AS eleclass
  16. FROM eleve AS e
  17. WHERE e.etablissement_idetablissement = '.$queryId.' AND e.nom_ele LIKE '$queryString2%' LIMIT 10 [/color] ");
  18. if($result) {
  19. // on parcourt les resultats
  20. while ($eleve = mysql_fetch_object($result)) {
  21. // on affiche les resultats dans un element de liste en ajoutant la fonction la fill sur l'evenenement onClick
  22. echo '<li onClick="fill(\''.$eleve->eleclass.'\');">'.$eleve->eleclass.'&nbsp</li>';
  23. }
  24. } else {
  25. echo 'Il y a une probleme avec la requete sql.';
  26. }
  27. } else {
  28.  
  29. }
  30. } else {
  31. echo 'Il ne devrait pas avoir un accès direct à ce script !!!';
  32. }


Communauté, mon problème se situe au niveau de la requête (la partie en vert), dans la clause WHERE, ma requête ne reconnais pas la variable $qureyId, or j'ai besoin de cette variable pour que les résultats de la requête soient distinct par établissement.
Mon problème est comment faire pour passer la valeur du INPUT TYPE= HIDDEN du formulaire au fichier ajax.php pour qu'il puisse traiter la requête en fonction de cette id.
Merci d'avance communauté ,
Contenus similaires
Meilleure solution
partage
, Vieux c*n psychorigide |
Citation :
comment faire pour passer la valeur du INPUT TYPE= HIDDEN du formulaire au fichier ajax.php


De la même façon que pour ton querystring :

$.post("modules/search/ajax.php", {queryString: ""+inputString+""},


ou bien

$.post("modules/search/ajax.php?champ="+variable, {queryString: ""+inputString+""},
  • Dreamcaster a sélectionné cette solution comme la meilleure réponse
  • Commenter cette solution |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS