Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 10 di 15

Discussione: Select concatenate Regioni-Province-Comuni (con Variazione)

  1. #1
    nofcfro è offline Utente del Forum
    Data Registrazione
    May 2012
    Messaggi
    42

    Select concatenate Regioni-Province-Comuni (con Variazione)

    Salve a tutti!
    Da questo sito:

    wwwPUNTOyourinspirationwebPUNTOcom/2010/09/09/come-realizzare-delle-select-concatenate-con-php-e-jquery/

    è possibile scaricare l'esempio di select concatenate Regioni->Province->Comuni. Lo schema proposto in questo esempio è il seguente:
    Prima Select Regione (popolata dal database) -> chiamata Ajax che popola la Seconda Select Province (sempre popolata dal database) -> chiamata Ajax che popola la Terza Select Comuni (sempre popolata dal database).
    A me servirebbe che il terzo popolamento non andasse sotto forma di select bensì mi stampasse a video in una tabella o div tutti i comuni della provincia selezionata.
    Qualcuno può darmi una mano?

  2. #2
    L'avatar di criric
    criric è offline Moderatore
    Data Registrazione
    Aug 2010
    Località
    TN
    Messaggi
    2,371
    Puoi provare cosi

    in select.class.php modifichi il metodo ShowComuni in questo modo
    Codice PHP:
    public function ShowComuni()
            {
                
    $sql "SELECT * FROM comuni WHERE id_pro=$_POST[id_pro]";
                
    $res mysql_query($sql,$this->conn);
                
    $comuni "";            
                    while(
    $row mysql_fetch_array($res))
                    {
                        
    $comuni .= '<tr><td>' $row['id_com'] . '</td><td>' $row['cap'] . '</td><td>' utf8_encode($row['comune']) . '</td></tr>';
                    }                        
                return 
    $comuni;
            } 
    in index.php modifichi la select dei comuni cosi;:
    Codice HTML:
    <table id="comuni">
    			
    </table>
    e la chiamata jquery cosi:
    Codice:
    $("select#province").change(function(){
    			
    			$("table#comuni").html(attendere);
    			var provincia = $("select#province option:selected").attr('value');
    			$.post("select.php", {id_pro:provincia}, function(data){
    				
    				$("table#comuni").html(data);	
    			});
    		});
    personalizza la tabella con i css

  3. #3
    nofcfro è offline Utente del Forum
    Data Registrazione
    May 2012
    Messaggi
    42
    Esattamente come lo cercavo!
    Grazie davvero!!

  4. #4
    nofcfro è offline Utente del Forum
    Data Registrazione
    May 2012
    Messaggi
    42

    Talking

    Ma una domanda: perché nella select.class.php la variabile $comuni = ""; rimane vuota?
    E come faccio a creare una tabella più complessa? Ad esempio a più righe? Io ho messo:

    Codice PHP:
    $comuni.=   '<table width="100%"><tr><td>' $row['ccc'] . '</td></tr>' '<tr><td>' $row['aaa'] . '</td></tr><tr><td>' $row['bbb'] . '</td></tr></table>'
    Grazie!

  5. #5
    L'avatar di criric
    criric è offline Moderatore
    Data Registrazione
    Aug 2010
    Località
    TN
    Messaggi
    2,371
    la variabile $comuni = ""; rimane vuota?
    Viene inizializzata vuota per non generare un warning ma poi concatenata nel ciclo con le varie <tr>

    $comuni.= ( punto uguale ) serve per concatenare una stringa

    Nel ciclo non devi mettere <table> perche la hai gia nell'html della index

    se vuoi essere piu ordinato puoi scrivere cosi

    Codice PHP:
    public function ShowComuni()
            {
                
    $sql "SELECT * FROM comuni WHERE id_pro=$_POST[id_pro]";
                
    $res mysql_query($sql,$this->conn);
                
    $comuni "";            
                    while(
    $row mysql_fetch_array($res))
                    {
                        
    $comuni.= '<tr>';
                                            
    $comuni.= '<td>' $row['id_com'] . '</td>';
                                            
    $comuni.= '<td>' $row['cap'] . '</td>';
                                            
    $comuni.= '<td>' utf8_encode($row['comune']) . '</td>';
                                            
    $comuni.= '</tr>';
                    }                        
                return 
    $comuni;
            } 

  6. #6
    nofcfro è offline Utente del Forum
    Data Registrazione
    May 2012
    Messaggi
    42
    Grazie, sempre perfetto
    Penso che anche quest'altra domanda possa tornare utile a molti utenti: se ho delle tabelle "player01, player02, ecc" che contengono le caratteristiche di ogni giocatore, se genero un codice come quello che segue, nella pagina principale non mi vengono visualizzate tutte le tabelle contenenti dati, ma solamente l'ultima! Come si può risolvere??
    Grazie anticipatamente
    Codice PHP:
    //utente01
                
    $sql "SELECT player01.* FROM player01 WHERE player01.idutenticon_tblutenticon=$_POST[idutenticon]";
                
    $res mysql_query($sql,$this->conn);
                
    $player"";            
                    while(
    $row mysql_fetch_array($res))
                    {
                        
    $player.= '<tr>';
                                            
    $player.= '<td>' '<strong>Occhi: </strong>' $row['occhi'] . '</td>';
                                            
    $player.= '<td>' '<strong>Capelli: </strong>' $row['capelli'] . '</td>';
                        
    $player.= '</tr><tr>';
                                            
    $player.= '<td>' '<strong>Viso: </strong>' $row['viso'] . '</td>';
                                            
    $player.= '<td>' '<strong>Altezza: </strong>' $row['altezza'] . '</td>';
                        
    $player.= '</tr>';               
                }        
            
            
    //utente02
                
    $sql "SELECT player02.* FROM player02 WHERE player02.idutenticon_tblutenticon=$_POST[idutenticon]";
                
    $res mysql_query($sql,$this->conn);
                
    $player"";            
                    while(
    $row mysql_fetch_array($res))
                    {
                        
    $player.= '<tr>';
                                            
    $player.= '<td>' '<strong>Occhi: </strong>' $row['occhi2'] . '</td>';
                                            
    $player.= '<td>' '<strong>Capelli: </strong>' $row['capelli2'] . '</td>';
                        
    $player.= '</tr><tr>';
                                            
    $player.= '<td>' '<strong>Viso: </strong>' $row['viso2'] . '</td>';
                                            
    $player.= '<td>' '<strong>Altezza: </strong>' $row['altezza2'] . '</td>';
                        
    $player.= '</tr>';               
                } 
    Ad esempio se ho la tabella "player01" e "player02" con dati, perché viene visualizzata solo la seconda?
    Ultima modifica di nofcfro; 10-08-2012 alle 09:18

  7. #7
    L'avatar di criric
    criric è offline Moderatore
    Data Registrazione
    Aug 2010
    Località
    TN
    Messaggi
    2,371
    Nuovo problema nuova discussione

    ripostala pero nella sezione di PHP

    e cmq non ho capito molto

  8. #8
    nofcfro è offline Utente del Forum
    Data Registrazione
    May 2012
    Messaggi
    42
    Non posso aprire una nuova discussione perché questo problema PHP credo sia legato alla struttura della chiamata Ajax.
    Tento però di spiegarmi meglio.

    Se io avessi invece che un'unica tabella "comuni" tante tabelle denominate "comune1", "comune2", ecc:

    Codice PHP:
    public function ShowComuni()
            {
                
    $sql "SELECT tblcomune1.* FROM tblcomune1 WHERE id_pro=$_POST[id_pro]";
                
    $res mysql_query($sql,$this->conn);
                
    $comuni "";            
                    while(
    $row mysql_fetch_array($res))
                    {
                        
    $comuni.= '<tr>';
                                            
    $comuni.= '<td>' $row['id_com1'] . '</td>';
                                            
    $comuni.= '<td>' $row['cap1'] . '</td>';
                                            
    $comuni.= '<td>' utf8_encode($row['comune1']) . '</td>';
                                            
    $comuni.= '</tr>';
                    }   
                
    $sql "SELECT tblcomune2.* FROM tblcomune2 WHERE id_pro=$_POST[id_pro]";
                
    $res mysql_query($sql,$this->conn);
                
    $comuni "";            
                    while(
    $row mysql_fetch_array($res))
                    {
                        
    $comuni.= '<tr>';
                                            
    $comuni.= '<td>' $row['id_com2'] . '</td>';
                                            
    $comuni.= '<td>' $row['cap2'] . '</td>';
                                            
    $comuni.= '<td>' utf8_encode($row['comune2']) . '</td>';
                                            
    $comuni.= '</tr>';
                    }
                
    $sql "SELECT tblcomune3.* FROM tblcomune3 WHERE id_pro=$_POST[id_pro]";
                
    $res mysql_query($sql,$this->conn);
                
    $comuni "";            
                    while(
    $row mysql_fetch_array($res))
                    {
                        
    $comuni.= '<tr>';
                                            
    $comuni.= '<td>' $row['id_com3'] . '</td>';
                                            
    $comuni.= '<td>' $row['cap3'] . '</td>';
                                            
    $comuni.= '<td>' utf8_encode($row['comune3']) . '</td>';
                                            
    $comuni.= '</tr>';
                    }                     
                return 
    $comuni;
            } 
    E tutte queste tabelle "comune1", "comune2", ecc sono popolate, utilizzando il codice che gentilmente prima mi hai postato ottengo come risultato solo la tabella col comune3! Mentre io vorrei che mi elencasse la tabella col comune1, la tabella col comune2, la tabella col comune3!
    Se invece utilizzo il vecchio codice con le select concatenate del mio primo post, ottengo che al cliccare il menù delle province mi si popola il menù dei comuni con la prima select che è comune1, la seconda select che è comune2, ecc.
    E' che è difficile spiegarsi bene quando si parla di queste cose! Spero di essermi espresso meglio questa volta

  9. #9
    usernam47 è offline Nuovo Iscritto
    Data Registrazione
    Nov 2012
    Messaggi
    7

    Question altra variazione

    Buongiorno!!e grazie di avermi indicato questa discussione, che non avevo trovato scusate se ne ho aperta una sullo stesso argomento.

    io avrei un problema diverso:

    dovrei stampare a video il comune selezionato, dopo la selezione a cascata e visualizzare anche gli altri dati di quel comune.
    ecco il ragionamento
    1.dovrei aggiungere una funzione in select.class per tirare fuori i dati dopo la selezione del comune
    2.aggiungere la chiamata nello script della index per visualizzare i dati.

    ho provato a inserire nella index:
    Codice PHP:
    --$("select#comuni").change(function(){
                
                $(
    "table#comune").html(attendere);
                var 
    comune = $("select#comuni option:selected").attr('value');
                $.
    post("select.php", {id_com:comuni}, function(data){
                    
                    $(
    "table#comune").html(data);    
                });
            });
    --

    nel select.php
    --if(isset($_POST['id_com']))
       {
        echo 
    $opt->ShowComune();
        die;
       }
    -- 
    nel select.class:
    Codice PHP:
    public function ShowComune()
            {
                
    $sql "SELECT * FROM comuni WHERE id_com=$_POST[id_com]";
                
    $res mysql_query($sql,$this->conn);
                
    $comune '';
                
                    while(
    $row mysql_fetch_array($res))
                    {
                        
    $comune.= $row['id_com'] . $row['cap'] . ' - ' utf8_encode($row['comune']);
                    }
                    
                return 
    $comune;
            } 
    e quando faccio la selezione mi restituisce il seguente errore:

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\testcascata\select.class.php on line 70

    qualcuno mi puo dare un suggerimento!!!

    grazie in anticipo.
    Ultima modifica di criric; 22-11-2012 alle 15:34

  10. #10
    L'avatar di criric
    criric è offline Moderatore
    Data Registrazione
    Aug 2010
    Località
    TN
    Messaggi
    2,371
    stampa query ed errore in questo modo
    Codice PHP:
    <?php

    $sql 
    "SELECT * FROM comuni WHERE id_com=$_POST[id_com]";
    $res mysql_query($sql$this->conn);
    // se la query non va a buon fine
    if (!$res) {
        
    // stampi query ed errore
        
    echo "Errore nella query <br/>" $query "<br/>" mysql_error();
        
    // blocchi l'esecuzione dello script
       
    die();
    }  
    ?>
    dall'errore puoi capire dov'è il problema

    edit
    qui ci vanno gli apici singoli
    Codice PHP:
    $_POST[id_com
    Codice PHP:
    $_POST['id_com'
    Ultima modifica di criric; 22-11-2012 alle 18:59

Pagina 1 di 2 12 UltimaUltima

Tag per Questa Discussione

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •