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

    Differenziare i risultati con jQuery

    Faccio una premessa prima di tutto poi spiego il problema.

    Premessa
    Ho questa chiamata Ajax che mi ritorna i nomi dei punti vendita in base prima alla regione e poi in base alla provincia che l'utente seleziona:

    codice:
    $('#provincia').change(function(){
        var elem = $(this).val();
    
        $.ajax({
            type: 'POST',
            url: 'ajax/select.php',
            dataType: 'json',
            data: {'provincia':elem},
            success: function(res){
                $('#punti_vendita tr').each(function(){$(this).remove()});
                $('#punti_vendita').append('<tr><th scope="col" width="20"></th><th scope="col" width="200">Punto Vendita</th><th scope="col" width="200">Indirizzo</th><th scope="col" width="200">Comune</th><th scope="col" width="100">Telefono</th><th scope="col" width="100">Fax</th></tr>');
                $.each(res, function(i, e){
                    $('#punti_vendita').append('<tr>' + e.cep + e.nome + e.indirizzo + e.comune + e.telefono + e.fax + '</tr>');
                });
            }
        });
    });
    In pratica mi viene viaualizzata una tabella con i punti vendita che sono stati recuperati tramite la query presente in questa funzione e memorizzati in un array (se presenti nella provincia selezionata):
    Codice PHP:
    //Seleziona i punti vendita della provincia scelta
    public function getPuntiVendita($sigla){
        
    $query "SELECT * FROM puntivendita WHERE prov = '".strtoupper($sigla)."'";
        if(
    $result parent::query($query)){
            if(
    $result->num_rows 0){
                while(
    $row $result->fetch_array()){
                    
    $puntiVendita[] = array(
                                            
    'cep' => '<td>'.$row['cep'].'</td>',
                                            
    'nome' => '<td>'.$row['punto_vendita'].'</td>',
                                            
    'indirizzo' => '<td>'.htmlentities($row['indirizzo']).'</td>',
                                            
    'comune' => '<td>'.htmlentities($row['comune']).'</td>',
                                            
    'telefono' => '<td>'.htmlentities($row['telefono']).'</td>',
                                            
    'fax' => '<td>'.htmlentities($row['fax']).'</td>'
                                            
    );
                }
            }else{
                
    $puntiVendita[] = array(
                                        
    'cep' => '<td></td>',
                                        
    'nome' => '<td colspan="2" style="font-style:italic; color: #990044; font-size:12px; margin-left: 200px;">Nessun punto vendita nella provincia selezionata</td>',
                                        
    'indirizzo' => '<td></td>',
                                        
    'comune' => '<td></td>',
                                        
    'telefono' => '<td></td>'
                                        
    );
            }
            return 
    $puntiVendita;
        }

    dove il 'cep' è un campo che mostra un semplice pallino per punti vendita in evidenza.

    Nel database i punti vendita sono suddivisi in "autorizzati" e "altri rivenditori" tramite un campo "visibile" che è impostato a 0 per quelli autorizzati e ha un valore numerico per gli altri.


    Problema
    Il mio problema è il seguente: vorrei trovare un qualche sistema che mi permetta di creare (o meno a seconda se siano presenti) una seconda tabella a seguire di quella già esistente ove inserire gli "altri rivenditori".
    La mia query a questo punto diventerebbe una cosa di questo tipo per gli autorizzati:
    Codice PHP:
    SELECT FROM puntivendita WHERE prov '".strtoupper($sigla)."' WHERE visibile '0' 
    E una cosa del genere per gli altri rivenditori:
    Codice PHP:
    SELECT FROM puntivendita WHERE prov '".strtoupper($sigla)."' WHERE visibile != '0' 
    e fin qui ci siamo, quello che non riesco a fare è come impostare la chiamata Ajax per realizzare la seconda tabella da attaccare alla prima...

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se stiamo parlando di una quantita' di dati accettabile, non differenzierei "altri rivenditori" con un' ulteriore chiamata ajax e query ma farei ritornare anche il valore di "visibile" e differenzierei i risultati in fase di valutazione della risposta

  3. #3
    Originariamente inviato da Xinod
    se stiamo parlando di una quantita' di dati accettabile, non differenzierei "altri rivenditori" con un' ulteriore chiamata ajax e query ma farei ritornare anche il valore di "visibile" e differenzierei i risultati in fase di valutazione della risposta
    Ci avevo pensato anche io, se mi faccio ritornare la voce "visibile" aggiungo una voce all'array, e fin qui niente di strano:
    Codice PHP:
            $puntiVendita[] = array(
                                            
    'cep' => '<td>'.$row['cep'].'</td>',
                                            
    'nome' => '<td>'.$row['punto_vendita'].'</td>',
                                            
    'indirizzo' => '<td>'.htmlentities($row['indirizzo']).'</td>',
                                            
    'comune' => '<td>'.htmlentities($row['comune']).'</td>',
                                            
    'telefono' => '<td>'.htmlentities($row['telefono']).'</td>',
                                            
    'fax' => '<td>'.htmlentities($row['fax']).'</td>',
                                            
    'visibile' => htmlentities($row['visibile'])
                                            ); 
    Il mio problema è proprio che non so come valutare il risultato per poi farmelo gestire da jQuery...

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    codice:
            success: function(res){
                $('#punti_vendita tr').each(function(){$(this).remove()});
                // qui svuota anche una seconda tabella
                // magari nascondi anche la tabella stessa
    
                var ciSonoInvisibili=false
    
                $('#punti_vendita').append('<tr><th scope="col" width="20"> </th><th scope="col" width="200">Punto Vendita</th><th scope="col" width="200">Indirizzo</th><th scope="col" width="200">Comune</th><th scope="col" width="100">Telefono</th><th scope="col" width="100">Fax</th></tr>');
                $.each(res, function(i, e){
                            if(e.visibile=="quello che ti aspetti venga ritornato per gli invisibili"){
                                        if(!ciSonoInvisibili){
                                                    // qui mostra la tabella se prima l' avevi nascosta
                                                    // e scrivi l' intestazione (prima riga) della tabella
                                                    ciSonoInvisibili=true
                                        }
                                        // qui appendi una riga alla seconda tabella, cosi' come fai poco sotto con la prima
                            }
                            else $('#punti_vendita').append('<tr>' + e.cep + e.nome + e.indirizzo + e.comune + e.telefono + e.fax + '</tr>');
                });
            }

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.