Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Esrtapolazione da menù a tendina php

    Salve, avrei un grosso problemino, mi spiego meglio:
    Ho realizzato un menù a tendina, riuscendolo a popolare direttamente dal database, il problema è che non riesco a legare ad ogni scelta del menù una select che mi riesca ad estrapolare i dati da un'altra tabella del database.
    Il codice che ho utilizzato per l'estrapolazione e la visualizzazione dei dati del db nel menù a tendina è il seguente:
    Codice PHP:
    <select class="shelf_selection" name="menu">
        <?php
                
        
    /* Connessione al Server */
            
    include ("config.php");
                                
            
    /*Query Estrapolazione Genere*/
            
    $query "SELECT DISTINCT genere.descrizione AS genere FROM genere ORDER BY genere.descrizione";
            
    $result mysql_query($query$myconn) or die("Errore Query");
            
    $riga mysql_fetch_array($result);
                                                    
            while (
    $riga)
                {
                    print(
    '<option value="index.php" selected="selected">'.$riga['genere'].'</option>');
                    
    $a $riga['genere'];
                                
                                
    /*Query Estrapolazione Sottogenere*/
                                    
    $query1 "SELECT sottogenere.descrizione AS sottogenere FROM sottogenere, genere WHERE (sottogenere.idGenere=genere.id)  && (genere.descrizione='$a')";
                                    
    $result1 mysql_query($query1$myconn) or die("Errore Query 2");
                                    
    $riga1 mysql_fetch_array($result1);
                                                            
                                    while (
    $riga1)
                                        {
                                           print(
    '<option value="index.php">'.$riga1['sottogenere'].'</option>');
                                    
                                           
    $riga1=mysql_fetch_array($result1);
                            }
                                    
    $riga=mysql_fetch_array($result);
                        }
                    
          
    ?>
    </select>

  2. #2
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    dunque se ho ben capito,vuoi che alla selezione di una voce appartenente al menu a tendina già popolato,automaticamente venga effettuata una query che estragga record in relazione alla voce selezionata ?

  3. #3

  4. #4
    se vuoi farlo aggiornando la pagina devi basarti sull'evento onChange javascript: cerca sul web "onChange redirect"

    ----

    senza aggiornamento di pagina occorre ajax
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  5. #5

    RE: oly1982

    Quello che dici tu, mi sarebbe stato utile, se avessi realizzato un menù a tendina statico.

  6. #6
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    si,in questo caso visto che il risultato dovrà essere la conseguenza di un evento che non prescinde dall'invio di un form dovresti utilizzare javascript....Per facilitarti il lavoro potresti utilizzare jquery utilizzando un' ajax call .... se hai bisogno...no problem

  7. #7

    RE: hyde82

    In base al codice scritto prima, come mi dovrei comportare??
    Se mi potresti aiutare, te ne sarei grato...

  8. #8
    anzitutto nel tuo script devi modificare
    while ($riga)
    con
    while ($riga = mysql_fetch_array($result))
    -----
    inoltre all'interno del ciclo while esegui un ulteriore query che dovrebbe invece essere gestita tramite una JOIN del tipo:
    codice:
    SELECT 
    	genere.descrizione AS genere, 
    	sottogenere.descrizione AS sottogenere 
    FROM genere 
    LEFT JOIN sottogenere ON genere.id= sottogenere.idGenere
    ORDER BY genere.descrizione
    -----
    vedi se <OPTGROUP> può fare al caso tuo
    -----

    se devi fare due select distinte in cui la seconda select è popolata in base alla scelta della prima ti servirà ajax (cerca sul web select concatenate ajax).
    In questo caso è fortemente consigliato utilizzare jquery.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  9. #9

    RE

    Ho trovato ciò che mi servirebbe - ECCO IL LINK -
    Solo che non riesco a capire come farlo funzionare su un'unico file.
    La prima parte del codice, l'ho copiata così per comè nell'head, il resto l'ho adattato nel body;
    il problema che mi esce fuori è: "Notice: Undefined index: q".

    Prima parte:

    Codice PHP:
    <script type="text/javascript">
            function 
    showUser(str)
            {
                if (
    str=="")
                      {
                          
    document.getElementById("txtHint").innerHTML="";
                          return;
                      }
                if (
    window.XMLHttpRequest)
                      {
    // code for IE7+, Firefox, Chrome, Opera, Safari
                          
    xmlhttp=new XMLHttpRequest();
                      }
                else
                      {
    // code for IE6, IE5
                          
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                      }
                
    xmlhttp.onreadystatechange=function()
                      {
                          if (
    xmlhttp.readyState==&& xmlhttp.status==200)
                            {
                                
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
                            }
                      }
                
    xmlhttp.open("GET","index.php?q="+str,true);
                
    xmlhttp.send();
            }
    </script> 
    Seconda parte:
    Codice PHP:
    <select class="shelf_selection" name="users" onchange="showUser(this.value)">
                            <?php
                
    //ALTRO CODICE
                
    ?>
    </select>

    <?php 
        $q
    =$_GET["q"];     //PROBLEMA SEGNALATO "Undefined index: q"
        
    $select2="SELECT libro.titolo FROM libro, sottogenere WHERE (libro.idSottogenere=sottogenere.ID) && (sottogenere.descrizione='$q')";
        
    $result2 mysql_query($select2);
        
    $riga2 mysql_fetch_array($result2);
        print(
    $riga2['titolo']);
    ?>

  10. #10
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    comincia a vedere se la matrice contiene valori....
    poi correggi così
    if(isset($_GET["q"])){
    $q=$_GET["q"]; //PROBLEMA SEGNALATO "Undefined index: q"
    $select2="SELECT libro.titolo FROM libro, sottogenere WHERE (libro.idSottogenere=sottogenere.ID) && (sottogenere.descrizione='$q')";
    $result2 = mysql_query($select2);
    $riga2 = mysql_fetch_array($result2);
    print($riga2['titolo']);
    }else{

    print "attenzione parametro vuoto";

    }

    per esempio..

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.