Salutation!!
Voila j'utilise le plugin d'autocompletion de jquery que j'arrive à faire fonctionner brillement. Mais j'ai commencé à le faire fonctionner avec un 2e paramètre. Je m'explique le 1e paramètre est se que je tape dans mon input pour faire la recherche jusqu'ici tout vas bien mais le 2e paramètre que j'essaie d'ajouter pour la recherche est issue d'une liste déroulante. Et la c'est la drame je n'arrive pas à ajouter ce 2e paramètre.
voici le code HTML:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <label for="site" class="label">Site</label><br class="br"/> <select id="site" name="site" onchange="maj_num_projet(site.value)" class="select" required> <option value="<?php if (isset($_POST['site'])){echo $_POST['site'];} ?>"> <?php if (isset($_POST['site'])){ $req_site = "SELECT LABEL_SITE FROM POP_SITE WHERE ID_SITE = '".$_POST['site']."'"; $sta_site = oci_parse($conn, $req_site); oci_execute($sta_site,OCI_COMMIT_ON_SUCCESS); $site = oci_fetch_assoc($sta_site); echo $site['LABEL_SITE'];} else {echo "...";} ?> </option> <?php while ($list_site = oci_fetch_assoc($statement2)) { ?> <option value="<?php echo $list_site['ID_SITE']; ?>"><?php echo $list_site['LABEL_SITE']; ?></option><?php } ?> </select> <label for="test" class="label">Test saisie automatique</label><br class="br"/> <input id="test" name="test" type="text" />
le code javascript:
Et le code php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 $(document).ready(function() { //$('#site').val(site); $('#test').autocomplete({ /* type: 'POST', paramName: 'annee', //params: 'site='+ site, extraParams: { site: function() { return $("site").val(); alert(site);} }, serviceUrl: 'liste_issu_lot.php', dataType: 'json', onSelect: function (suggestion) { alert('You selected: ' + suggestion.value + ', ' + suggestion.data); }*/ source : function(requete, reponse){ // la fonction anonyme permet de maintenir une requête AJAX directement dans le plugin $.ajax({ type: 'POST', url : 'liste_issu_lot.php', // on appelle le script JSON dataType : 'json', // on spécifie bien que le type de données est en JSON data : { annee: request.annee, // on donne la chaîne de caractère tapée dans le champ de recherche site: $('#site').val() }, success : function(data){ // on se prépare à renvoyer les données réceptionnées grâce à l'évènement de succès response(data); }, error : function(){ alert("Une erreur est survenue"); } }); } }); });
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 if(isset($_POST['annee'])) { if($_POST['annee'] != "") { $json = array(); $requete = "SELECT NUM_EN_COURS_DEG,DESIGNATION,REFERENCE FROM POP_STOCK JOIN POP_EN_COURS ON POP_EN_COURS.ID_EN_COURS = POP_STOCK.ID_EN_COURS WHERE NUM_EN_COURS LIKE UPPER('%".$_POST['annee']."%') AND ID_SITE= '".$_POST['site']."' ORDER BY NUM_EN_COURS ASC"; $statement = oci_parse($conn, $requete); oci_execute($statement,OCI_COMMIT_ON_SUCCESS); while ($issu_lot = oci_fetch_assoc($statement)) { // je remplis un tableau et mettant l'id en index (que ce soit pour les régions ou les départements) $json['suggestions'][] = $issu_lot['NUM_EN_COURS_DEG']."-".html_entity_decode($issu_lot['DESIGNATION'])."-".$issu_lot['REFERENCE']; } // envoi du résultat au success echo json_encode($json); } }
Ma fonction javascript est un peu fouillis je vous l'accorde mais c'est parce que je test avec plein de chose que je trouve sur internet. La partie commenté est celle qui fonctionne bien avec un paramètre et j'ai essayé d'ajouter un 2e mais sans succès. Pour la partie décommenté elle me retourne cette erreur: Uncaught SyntaxError: Unexpected token <
Voila j'espère que quelqu'un pourra m'aider car je bloque vraiment dessus et je me cogne la tête^^. Merci d'avance pour votre aide!
Partager