Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Select concatenati

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777

    Select concatenati

    salve a tutti,
    il codice in questione è questa
    Codice PHP:
    <!-- Scegli la materia -->
    <?
    //prelievo le scelte dell'utente
    if(isset($_POST['materia_quiz'])){
        
    $materia_quiz$_POST['materia_quiz'];
        }
    if(isset(
    $_POST['categoria_quiz'])){
        
    $categoria_quiz$_POST['categoria_quiz'];
        }
    ?>
    <form name="quiz_materia" action="" method="POST" >
    <!-- SELECT DELLE MATERIE -->
    <fieldset>
      <legend>Scegli la materia</legend>
    <SELECT NAME="materia_quiz" onchange="this.form.submit()">

    <OPTGROUP label="Materie">
    <OPTION VALUE="Tutte le materie">Tutte le materie
    <?
    //creo la prima select con elenco materie e materia selezionata da utente
    $materia_db$wpdb->get_results("SELECT * FROM avwp_quiz GROUP BY materia");
    foreach(
    $materia_db as $mat){
        
    $materia$mat->materia;
            if(
    $materia == $materia_quiz){?>
            <OPTION VALUE="<?echo $materia;?>" selected><?echo ucfirst($materia);
            
    $disabled=1;
            }
            else{
    ?>
            <OPTION VALUE="<?echo $materia;?>"><?echo ucfirst($materia);
            }
    }
    ?>
    </OPTGROUP>
    </SELECT>
    </fieldset>
    <!-- /SELECT DELLE MATERIE -->

    <!-- SELECT DELLE CATEGORIE -->

    <fieldset>
    <legend>Scegli la categoria</legend>
    <SELECT NAME="categoria_quiz" onchange="this.form.submit()" 
    <?if($disabled!=1){
    echo 
    "disabled=\"disabled\"";
    }
    ?>
    >

    <OPTGROUP label="Categorie">
    <OPTION VALUE="Tutte le categorie">Tutte le categorie
    <?


    $categoria_db
    $wpdb->get_results("SELECT * FROM avwp_quiz WHERE materia='$materia_quiz' GROUP BY speciale");

    foreach(
    $categoria_db as $spec){
        
    $categoria$spec->speciale;
    //verifico se categoria esiste

            
    if(empty($categotia) AND $categoria !=""){
            if(
    $categoria_quiz == $categoria){?>
            <OPTION VALUE="<?echo $categoria;?>" selected><?echo ucfirst($categoria);
            }
            else{
    ?>
            <OPTION VALUE="<?echo $categoria;?>"><?echo ucfirst($categoria);
            }
        }
    }
    ?>
    </OPTGROUP>
    </SELECT>
    </fieldset>
    </form>
    <!-- /Scegli la categoria-->
    <?
    // no selezione o tutte le materie
    if(empty($materia_quiz) OR (isset($materia_quiz) AND $materia_quiz == 'Tutte le materie')){
    $quiz_db$wpdb->get_results("SELECT * FROM avwp_quiz ORDER BY rand() LIMIT 10");
    }
    //seleziona materia e se è settata tutte le categorie
    if((isset($materia_quiz) AND $materia_quiz != 'Tutte le materie') OR (isset($categoria_quiz) AND $categoria_quiz=='Tutte le categorie')){
    $quiz_db$wpdb->get_results("SELECT * FROM avwp_quiz WHERE materia='$materia_quiz' ORDER BY rand() LIMIT 10");
    }
    //materia e categoria
    if((isset($materia_quiz) AND $materia_quiz != 'Tutte le materie') AND (isset($categoria_quiz) AND $categoria_quiz !='Tutte le categorie')){
    $quiz_db$wpdb->get_results("SELECT * FROM avwp_quiz WHERE (materia='$materia_quiz' AND speciale='$categoria_quiz')  ORDER BY rand() LIMIT 10");
    }

    ?>
    la pagina dove agisce è questa
    http://atuttascienza.altervista.org/blog/quiz/

    in pratica mi permette di selezionare la materia per i quiz sottostanti con eventualmente la categoria
    funziona abbastanza bene ma ho trovato un problema

    facendo un esempio
    seleziono chimica e poi composti organici
    se io vado a riselezionare la materia...scelgo per esempio biologia il secondo valore vorrei che tornasse come "tutte le categorie" e non che rimanga composti organici...come posso risolvere?

  2. #2
    Puoi fare una cosa del genere: passa $materia_quiz come campo hidden e di volta in volta lo confronti con quello selezionato. Se sono diversi vuol dire che è stata selezionata una materia differente ed in questo caso imposti $categoria_quiz a "tutte le categorie"
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    Quote Originariamente inviata da satifal Visualizza il messaggio
    Puoi fare una cosa del genere: passa $materia_quiz come campo hidden e di volta in volta lo confronti con quello selezionato. Se sono diversi vuol dire che è stata selezionata una materia differente ed in questo caso imposti $categoria_quiz a "tutte le categorie"
    grazie del consiglio...
    ho modificato come mi hai detto
    Codice PHP:
    if(isset($_POST['t'])){
    $e$_POST['t'];
    }
    if(isset(
    $_POST['categoria_quiz'])){
        
    $categoria_quiz$_POST['categoria_quiz'];

        }
    if(isset(
    $_POST['materia_quiz'])){
        
    $materia_quiz$_POST['materia_quiz'];

        }

    if(
    $e != $materia_quiz){
    unset(
    $categoria_quiz);

    quando faccio la scelta in basso nel form faccio passare input hidden con il nome della materia.
    se questa è diversa con la variabile scelta, distrugge la categoria e sembra andare
    sembra funzionare...faccio alcune prove
    Ultima modifica di amphioxus; 05-09-2014 a 16:07

Tag per questa discussione

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.