Barra di ricerca AJAX-Jquery

di il
15 risposte

Barra di ricerca AJAX-Jquery

Buongiorno a tutti,sono nuova in questo forum.Volevo chiedere il vostro aiuto!Sto creando una barra di ricerca con l'autocompletamento effettuando una chiamata ajax,e fin qui tutto bene.Il problema è quando voglio visualizzare il risultato della mia ricerca nella mia tabella !Opero in questo modo:
prendo il valore della mia input box, creo una variabile e richiamo la classe"tr_row"che conterrà(metodo"contains" in jquery)il valore della mia input,dopo tale punto non so come evidenziare il mio risultato,ovvero, ad ogni mia ricerca deve evidenziare uno ed un solo record posizionandomelo al primo posto rispetto agli altri.Spero mi abbiate compresa, Grazie

15 Risposte

  • Re: Barra di ricerca AJAX-Jquery

    Ciao, se puoi metti il codice così possiamo provarlo e cercare di risolverlo
  • Re: Barra di ricerca AJAX-Jquery

    Grazie per la tua risposta,ecco il codice

    $(".button_search").click(function(){
    var valore=$(".search").val();
    var id=$(".tr_delete:contains('"+valore+"')").addClass("search_text");
    });
    Qui aggiungo una classe che evidenzia in grassetto il record ricercato,solo che li evidenzia tutti man mano che ottengo i risultati di varie ricerche cioè ad una nuova ricerca quella precedente non deve essere evidenziata...
  • Re: Barra di ricerca AJAX-Jquery

    Se ho ben capito quello che chiedi, il problema è dovuto al fatto che quando fai una nuova ricerca non togli la classe search_text, per cui ti rimangono evidenziate tutti i risultati precedenti
  • Re: Barra di ricerca AJAX-Jquery

    Si esatto,sono ancora un neofita in jquery, come dovrei rimuovere la classe?so che il metodo è "removeClass",ma in che punto dovrei applicarlo?
  • Re: Barra di ricerca AJAX-Jquery

    Beh secondo me potresti farlo come prima istruzione nella funzione che hai scritto qua sopra:

    $(".search_text").removeClass(".search_text");
  • Re: Barra di ricerca AJAX-Jquery

    Niente,non funziona =(
    $(".button_search").click(function(){
    $(".search_text").removeClass(".search_text");
    var valore=$(".search").val();
    var id=$(".tr_delete:contains('"+valore+"')").addClass("search_text");

    });
  • Re: Barra di ricerca AJAX-Jquery

    Forse il problema è che con il selettore $(".tr_delete:contains('"+valore+"')") selezioni tutte le righe che contengono quel valore. Forse ti serve selezionare solo la prima (quella più in alto)? In tal caso dovresti usare var id=$(".tr_delete:contains('"+valore+"')").first().addClass("search_text");
  • Re: Barra di ricerca AJAX-Jquery

    Forse dovrei utilizzare il this?col first non accade nulla,e poi vorrei che me lo posizionasse al primo posto a prescindere dalla sua posizione di base...
  • Re: Barra di ricerca AJAX-Jquery

    Prova a incollare tutto l'html e javascript che ci do un'occhiata..
  • Re: Barra di ricerca AJAX-Jquery

    QUI HO LA FORM
    <form action="/il mio controller" method="get">
    <div class="span5">
    <div class="ui-widget">
    <input type="text" placeholder="Cerca per nome/ email" class="span5 search" name="searchname" />
    </div>
    </div>
    <div class="span2">
    <button class="btn btn-primary button_search" type="button" name="search_button">Cerca</button>
    </div>
    </form>

    QUI CREO UN CICLO PER VISUALIZZARE TUTTI I RECORD PRESENTI NELLA TABELLA
    <table class="table table-bordered" id="tabella_rows">
    <thead>
    <tr>
    <th>Nome</th>
    <th class="span2">Email</th>
    <th>Registrazione</th>
    <th class="span1">Elimina</th>
    </tr>
    </thead>
    <tbody>
    <?php
    foreach($userlist as $lista_utenti){
    print('<tr class="tr_delete"><td class="tb-attivo"><a href="#add2" data-toggle="modal" class="nome" id="'.$lista_utenti['id'].'" data-id="'.$lista_utenti['name'].'" data="'.$lista_utenti['surname'].'" email="'.$lista_utenti['email'].'">'.$lista_utenti['name'].' ');
    print($lista_utenti['surname'].'</a></td>');
    print('<td class="tb-attivo">'.$lista_utenti['email'].'</td>');
    print('<td class="tb-attivo">'.$lista_utenti['created_at'].'</td>');
    print('<td class="tb-attivo"><a href="#" class="deleteuser" row_id="'.$lista_utenti['id'].'"><span class="awe-remove"></span></td></a>');

    echo'</tr>';
    }
    ?>
    </tbody>
    </table>

    QUESTO è IL CODICE CHE ESEGUE L'AUTOCOMPLETE
    $(".search").autocomplete({
    source: function(request, response){
    $.ajax({
    url:"userlistsearch.html",
    dataType:"json",
    data:{searchname: request.term},
    success: function(data){
    response($.map(data, function(item){
    return{
    label: item.name +" , "+(item.email),
    value: item.name
    }
    }));
    }
    });
    }
    });

    QUESTO E' IL CODICE CHE DOVREBBE FAR VISUALIZZARE IL RISULTATO DELLA RICERCA AL CLICK DEL BUTTON SEARCH EVIDENZIANDOLO
    $(".button_search").click(function(){
    $(".search_text").removeClass(".search_text");
    var valore=$(".search").val();
    var id=$(".tr_delete:contains('"+valore+"')").first().addClass("search_text");
    });

    Grazie per la tua cortese disponibilità!
  • Re: Barra di ricerca AJAX-Jquery

    In questa riga selezioni gli elementi di classe "Search" ma se non ho visto male non c'è nessun elemento con tale classe

    La riga è la seguente:
    var valore=$(".search").val();
  • Re: Barra di ricerca AJAX-Jquery

    La classe ".search" corrisponde all'input box, prendo il valore della input
    <input type="text" placeholder="Cerca per nome/ email" class="span5 search" name="searchname" />
  • Re: Barra di ricerca AJAX-Jquery

    In realtà avevo sbagliato nel codice javascript:
    invece di removeClass(".search_text"); ci andava removeClass("search_text"); (quindi senza punto ovviamente)

    Inoltre ho provato una cosa simile al tuo codice, ma ho notato che al click sul button non viene richiamato il corrispondente codice javascript, a te funziona?. Se, invece, creo una funzione e la associo all'onclick direttamente da html funziona tutto. Quindi qualcosa del genere:
    
    <html>
       <head>
          <script>
          function myfunc(){
            $(".search_text").removeClass("search_text");
            var valore=$(".search").val();
            var id=$(".tr_delete:contains('"+valore+"')").first().addClass("search_text");    
          }
          </script>
       </head>
       <body>
       ...
       <button onClick="myfunc()" class="btn btn-primary button_search" type="button" name="search_button">Cerca</button>
       ...
       </body>
    </html>
    
  • Re: Barra di ricerca AJAX-Jquery

    Si funziona perfettamente grazie!!Era una stupidata,ma credimi,per le stupidate una persona impazzisce !! E in più nemmeno io ho fatto caso al punto -.-" , comunque posso chiederti anche come posso posizionare al primo posto il risultato?perchè per ora la tabella ha solo tre record come prova,ma quando verrà riempito i record saranno molti e quindi non posso solo evidenziare in grassetto il record,devo pure posizionarlo!Grazie mille
Devi accedere o registrarti per scrivere nel forum
15 risposte