Ciao Sabino, ho provato un po ad usare il tuo esempio
JQUERY
$(function() {
$( "#invio_vol" ).autocomplete({source:"02_search_result.php",minLength: 2});
}
);
PHP
if (isset($_GET['term'])){
$return_arr = array();
try {
$conn = new PDO("mysql:host=".DB_SERVER.";dbname=".DB_NAME, DB_USER, DB_PASSWORD);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('SELECT Nome FROM 01_tabella_mia WHERE Nome LIKE :term');
$stmt->execute(array('term' => '%'.$_GET['term'].'%'));
while($row = $stmt->fetch()) {
$return_arr[] = $row['Nome'];
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
/* Toss back results as json encoded array. */
echo json_encode($return_arr);
}
... però mi dava un errore strano, che invece di caricare il risultato php, mi ricaricava la pagina ... ho cercato delle soluzioni.
Il mio scopo era comunque questo: aggiungere un elenco alla mia pagina, in base a delle variabili e i valori presi da un database MySql
La necessità di usare il codice jQuery, oltre al fatto che tutta la pagina è in jQuery, probabilmente era l'unica scelta, perchè con php, ho visto che ci sono diverse difficoltà a cambiare i DOM in modo dinamico, mentre jQuery lo fa con una certa facilità, quindi ho cercato qualcosa tipo jQuery-PHP-MySQL
Sono arrivato alla semplice conclusione che sfrutto i file esterni json, ma in modo custom:
- il contenuto del file json lo prendo col jquery tipo:
$.getJSON( "path/test.json", function( data ) {
- invece di fare test.json carico test.php, con delle variabili tipo
test.php?A=123&B=456&C=789
- il file test.php interroga il mysql con le variabili e restituisce con echo una struttura propria del file json
- jQuery non gli interessa che tipo di file carichi, ma l'importante che se fai getJSON, si apetta una certa struttura
- così funziona alla grande ed è molto in linea con gli sviluppi comuni che si trovano nei forum
- alcuni hosting ho visto che bloccano i finti file creati dal php, ma basta un messaggio al proprietario che viene risolto al volo