Autocomplete
delaville81
Messages postés
209
Statut
Membre
-
delaville81 Messages postés 209 Statut Membre -
delaville81 Messages postés 209 Statut Membre -
Bonjour chers confères,
J'ai trouvé ce code pour crée un input d'autocomplete sur ce site
https://github.com/cluemediator/autocomplete-textbox-ajax-php
J'ai fais sur mon serveur OVH comme indiqué (en mettant mes identifiants de connexion à la BDD), mais rien ne fonctionne
J'aurais bien besoin de votre aide
Meci d'avance
--
Bien PHPment et MySQLment
Delaville
J'ai trouvé ce code pour crée un input d'autocomplete sur ce site
https://github.com/cluemediator/autocomplete-textbox-ajax-php
J'ai fais sur mon serveur OVH comme indiqué (en mettant mes identifiants de connexion à la BDD), mais rien ne fonctionne
J'aurais bien besoin de votre aide
Meci d'avance
Configuration: Macintosh / Chrome 89.0.4389.90
--
Bien PHPment et MySQLment
Delaville
9 réponses
-
Bonjour,
Va falloir être un peu plus précis
Qu'as tu fais au juste ?
As tu créé la table ?
Quel code as tu réellement écrit ?
As tu inclus la librairie jquery à ta page ?
As tu des erreurs dans la cosnole Javascript de ton navigateur ?
NB: vu que ça utiliser l'ajax, pour correctement le debuguer, je t'invite fortement à le faire depuis le navigateur Firefox et à cocher, dans la console, le debugage XHR.
-
index1.php
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>Demo</title> <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css" type="text/css" /> </head> <body> <form action='' method='post'> <p><label>Country:</label><input type='text' name='country' value='' class='auto' autocomplete="off"></p> </form> <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.min.js"></script> <script type="text/javascript"> $(function(){ //autocomplete $(".auto").autocomplete({ source: "ajax-city-search.php", minLength: 1 }); }); </script> </body> </html>
connection.php<?php $dbhost = 'mon host'; $dbuser = 'utilisateur'; $dbpass = 'mon pws'; $db = 'nom de la base'; $conn = mysqli_connect($dbhost, $dbuser, $dbpass , $db) or die($conn); ?>
ajax-city-search.php<?php require_once('connection.php'); function get_city($conn , $term){ $query = "SELECT * FROM city WHERE city_name LIKE '%".$term."%' ORDER BY city_name ASC"; $result = mysqli_query($conn, $query); $data = mysqli_fetch_all($result,MYSQLI_ASSOC); return $data; } if (isset($_GET['term'])) { $getCity = get_city($conn, $_GET['term']); $cityList = array(); foreach($getCity as $city){ $cityList[] = $city['city_name']; } echo json_encode($cityList); } ?>
La table est bien crée.
La console javascript me renvoi
Mixed Content: The page at 'https://url de mon site' was loaded over HTTPS, but requested an insecure stylesheet 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css'. This request has been blocked; the content must be served over HTTPS.
index1.php:1 Mixed Content: The page at 'https://url de mon site' was loaded over HTTPS, but requested an insecure script 'http://code.jquery.com/jquery-1.9.1.min.js'. This request has been blocked; the content must be served over HTTPS.
index1.php:1 Mixed Content: The page at 'https://url de mon site' was loaded over HTTPS, but requested an insecure script 'http://code.jquery.com/ui/1.10.1/jquery-ui.min.js'. This request has been blocked; the content must be served over HTTPS.
index1.php:17 Uncaught ReferenceError: $ is not defined
at index1.php:17
-
Il faut que tu charges les librairie jQuery UI et JQuery en HTTPS et non en HTTP tout court.
Carla, la console m'indique que jQuery n'est pas chargé
-
Meci pour ta réponse.
J'ai toujours une erreur
GET https://url du site/ajax-city-search.php?term=c 500
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
$(function(){ //autocomplete $(".auto").autocomplete({ source: "ajax-city-search.php", minLength: 1 }); });
-
J'ai mis :
error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE);
aucun retour.
La console JS n'affiche rien
Mais ça ne marche toujours pas
-
<?php $link = mysqli_connect("localhost", "my_user", "my_password", "world"); /* Vérification de la connexion */ if (mysqli_connect_errno()) { printf("Échec de la connexion : %s\n", mysqli_connect_error()); exit(); } if (!mysqli_query($link, "SET a=1")) { printf("Message d'erreur : %s\n", mysqli_error($link)); } /* Fermeture de la connexion */ mysqli_close($link); ?>
En changeant "localhost", "my_user", "my_password", "world" par les codes de BDD.
Me retourne
Message d'erreur : Unknown system variable 'a'
-
Vu que rien ne fonctionne, connais tu un tuto clair sur l'autocomplete en JS .
J'ai l'impression que le JSON ne fonctionne pas sur mon hébergeur (OVH). Aucune des fonctions JS/ AJAX / PHP que j'ai écrite n'a fonctionné.
-
voici à quoi devrait ressembler ton code
<?php // fichier : connection.php $dbhost = 'mon host'; $dbuser = 'utilisateur'; $dbpass = 'mon pws'; $db = 'nom de la base'; $conn = mysqli_connect($dbhost, $dbuser, $dbpass , $db); /* Vérification de la connexion */ if (mysqli_connect_errno()) { printf("Échec de la connexion : %s\n", mysqli_connect_error()); exit(); } ?>
<?php // Fichier : ajax-city-search.php //affichage des erreurs php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // connexion à la bdd require_once('connection.php'); function get_city($term){ global $conn; $query = "SELECT * FROM city WHERE city_name LIKE '%".$term."%' ORDER BY city_name ASC"; if (!mysqli_query($conn, $result = mysqli_query($conn, $query))) { echo json_encode([ mysqli_error($link)]); } $data = mysqli_fetch_all($result,MYSQLI_ASSOC); return $data; } $cityList = array(); if (isset($_GET['term'])) { $getCity = get_city($_GET['term']); if(!empty($getCity)){ foreach($getCity as $city){ $cityList[] = $city['city_name']; } }else{ echo json_encode(['AUCUNE DONNEE TROUVEE']); } } echo json_encode($cityList);
NB: Pour pouvoir debuguer de l'ajax, il faut que tu utilises FireFox et que tu actives, dans la console js, le debugage XHR.
-
-
J'ai changé le fichier index1.php avec la version trouvée sur le page Github de la fonction
<!doctype html> <html lang="en"> <head> <!-- jQuery --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <!-- jQuery UI --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css" /> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script> <!-- Bootstrap CSS --> <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <div class="container"> <h5 class="mt-4">Autocomplete Textbox Using PHP, MySQL and jQuery - <a href="https://www.cluemediator.com/" target="_blank">Clue Mediator</a></h5> <div class="row"> <div class="col-md-4"> <label>City:</label> <input type="text" name="city" id="search_city" placeholder="Type to search..." class="form-control"> </div> </div> </div> <script type="text/javascript"> $(function(){ $( "#search_city" ).autocomplete({ source: 'ajax-city-search.php', minLenght: 1 }); }); </script> </body> </html>
XHR GET https://URLDeMonSite.com/ajax-city-search.php?term=a
[HTTP/2 200 OK 58ms]
Mais aucune liste de choix ne s'affiche