Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Autocomplete jquery che non filtra!

    Ciao a tutti, sono nuovo del forum.
    Sto lavorando al classico autocomplete jquery di un campo di testo con dati da database mysql.
    Ho realizzato il mio script e tutto funziona, ma quando nel campo di input inserisco le prime 3 lettere non viene filtrato un bel nulla e mi trovo l'elenco di tutti i campi della tabella!
    Se come source utilizzo una variabile il filtro funziona, ma se utilizzo il file php ( che stampa i valori di un array con json_encode) il filtro non funziona e mi mostra tutti i risultati, non solo quelli contenenti il testo che ho digitato.

    Ho provato anche con un esempio ufficiale da queryui.com ma il risultato è lo stesso, inizio a pensare che il mio script php sia sbagliato.
    Ecco lo script:
    Codice PHP:

    $link 
    mysqli_connect("localhost","root","","eventi") or die("Error " mysqli_error($link));

    $sql "SELECT * FROM listino";

    $result $link->query($sql);

    $resArray = array();

    while(
    $product mysqli_fetch_array($result)) {
        
    $resArray[] = array('value' => $product['desc'], 'data' => $product['prezzo']);
        }
    echo 
    json_encode($resArray); 
    L'output generato è in pratica il seguente:
    [{"value":"margherita","data":"5.5"},{"value":"mari nara","data":"5"},{"value":"wrustel","data":"6.5"} ,]
    Identico al valore della variabile locale che invece funziona!

    Continua a mostrarmi nel campo di testo TUTTI i valori e non solo quelli che, per es, contengono il testo digitato!
    Qualcuno può aiutarmi??
    Grazie!!
    Ultima modifica di Csoftware; 25-03-2014 a 03:06

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuto ma nella query la WHERE per filtrare i dati dov'è?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Ciao e benvenuto ma nella query la WHERE per filtrare i dati dov'è?
    In che senso? Il filtro non lo fa jquery in base a quello che scrivo nell'input?
    Con la variabile locale funziona, con lo script php credevo di dover stampare l'intero contenuto, ma ora mi stai facendo venire un dubbio...forse é quello il problema?
    E con che parametro filtro?
    non ho mai fatto l'autocomplete con dati da db...

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Se nella query verso il db non metti niente nel WHERE, o forse meglio LIKE visto che si parla di un autocomplete, ti verrà restituito tutto il contenuto della tabella.

    Da jQuery devi passare allo script le lettere digitate ed usi queste nella query che eseguirai sul db.

  5. #5
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Se nella query verso il db non metti niente nel WHERE, o forse meglio LIKE visto che si parla di un autocomplete, ti verrà restituito tutto il contenuto della tabella.

    Da jQuery devi passare allo script le lettere digitate ed usi queste nella query che eseguirai sul db.
    Grazie mille, credo di aver capito il funzionamento, credevo fosse sufficiente cambiare il parametro del "source:" in javascript.
    Non mi è chiaro come passare quanto digito nella query, ho trovato esempi molto differenti tra loro (chi passava una variabile, chi :term , chi $_GET)....
    Ora faccio qualche prova, grazie!

  6. #6

    RISOLTO!

    Ok, ce l'ho fatta!
    Grazie mille!
    Per completezza, posto il codice:
    Codice PHP:
    $term trim(strip_tags($_GET['term'])); 
    $link mysqli_connect("localhost","root","","eventi") or die("Error " mysqli_error($link));

    $sql "SELECT * FROM `listino` WHERE `desc` LIKE '%$term%' ";
    $result $link->query($sql);
    $resArray = array();
    while(
    $product mysqli_fetch_array($result)) {
        
    $resArray[] = array('value' => $product['desc'], 'data' => $product['prezzo']);
        }
    echo 
    json_encode($resArray); 
    Buona serata!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.