Visualizzazione risultati 1 fino 9 di 9

Discussione: variare un select in funzione di un altro

  1. #1
    Guest

    Predefinito variare un select in funzione di un altro

    Chi mi può aiutare con questo codice?

    In teoria scegliendo nel primo select si dovrebbe aprire un select inferiore:

    Codice PHP:
    Sezione:<br>
    <?php echo "<select onchange=\"document.location.href = '" . $_SERVER['PHP_SELF'] . "?sezione=' + this.value;\">";?>
    <option value="microsoft">Microsoft</option>
    <option value="apple">Apple</option>
    <option value="office">Office</option>
    <option value="sicurezza">Sicurezza</option>
    <option value="multimedia">Multimedia</option>
    <option value="internet">Internet</option>
    <option value="im">I'M</option>
    <option value="live">Live</option>
    <option value="hardware">Hardware</option>
    <option value="mobile">Mobile</option>
    <option value="techouse">Tech House</option>
    </select>
    <br>
    <br>
    <?php
    echo "<select name='categoria'>";

    switch (
    $_GET['sezione']) {
    case
    'microsoft':
    echo
    "<option value='1'>OS</option>";
    echo
    "<option value='2'>Software</option>";
    echo
    "<option value='3'>Prodotti</option>";
    echo
    "<option value='4'>News</option>";
    break;

    case
    'apple':
    echo
    "<option value='1'>OS</option>";
    echo
    "<option value='2'>Software</option>";
    echo
    "<option value='3'>iPod e iPhone</option>";
    echo
    "<option value='4'>Prodotti</option>";
    echo
    "<option value='5'>News</option>";
    break;

    case
    'office':
    echo
    "<option value='1'>Write</option>";
    echo
    "<option value='2'>Grafica</option>";
    echo
    "<option value='3'>Prodotti</option>";
    echo
    "<option value='4'>Studenti</option>";
    echo
    "<option value='5'>News </option>";
    break;

    case
    'sicurezza':
    echo
    "<option value='1'>Computer</option>";
    echo
    "<option value='2'>Mobile</option>";
    echo
    "<option value='3'>House</option>";
    echo
    "<option value='4'>Prodotti</option>";
    echo
    "<option value='5'>News </option>";
    break;

    case
    'multimedia':
    echo
    "<option value='1'>Software</option>";
    echo
    "<option value='2'>Mobile </option>";
    echo
    "<option value='3'>Prodotti</option>";
    echo
    "<option value='4'>News</option>";
    break;

    case
    'internet':
    echo
    "<option value='1'>Software</option>";
    echo
    "<option value='2'>P2P</option>";
    echo
    "<option value='3'>Mobile</option>";
    echo
    "<option value='4'>Prodotti</option>";
    echo
    "<option value='5'>News</option>";
    break;

    case
    'im':
    echo
    "<option value='1'>Skype</option>";
    echo
    "<option value='2'>Mobile</option>";
    echo
    "<option value='3'>Prodotti</option>";
    echo
    "<option value='4'>News</option>";
    break;

    case
    'live':
    echo
    "<option value='1'>Messenger</option>";
    echo
    "<option value='2'>Spaces</option>";
    echo
    "<option value='3'>Servizi</option>";
    echo
    "<option value='4'>Programmi</option>";
    echo
    "<option value='5'>News</option>";
    break;

    case
    'hardware':
    echo
    "<option value='1'>No Sub Category</option>";
    break;

    case
    'mobile':
    echo
    "<option value='1'>Software</option>";
    echo
    "<option value='2'>News</option>";
    break;

    case
    'techouse':
    echo
    "<option value='1'>Ambieti</option>";
    echo
    "<option value='2'>Prodotti</option>";
    echo
    "<option value='3'>News</option>";
    break;

    }

    echo
    "</select><br> ";
    ?>
    I problemi sono i seguenti:

    Il primo select torna sempre a microsoft
    e con il select microsft non si apre il secondo select

  2. #2
    Guest

    Predefinito

    La prima riga è sbagliata, cambiala così
    Codice PHP:
    echo "<select onchange=\"document.location.href = '" . $_SERVER['PHP_SELF'] . "?sezione=+this.value;'\">";?>

  3. #3
    Guest

    Predefinito

    Codice PHP:
    Sezione:<br>
    <?php echo "<select onchange=\"document.location.href = '" . $_SERVER['PHP_SELF'] . "?sezione=+this.value;'\">";?>
    <option value="microsoft">Microsoft</option>
    <option value="apple">Apple</option>
    <option value="office">Office</option>
    <option value="sicurezza">Sicurezza</option>
    <option value="multimedia">Multimedia</option>
    <option value="internet">Internet</option>
    <option value="im">I'M</option>
    <option value="live">Live</option>
    <option value="hardware">Hardware</option>
    <option value="mobile">Mobile</option>
    <option value="techouse">Tech House</option>
    </select>
    <br>
    <br>
    <?php
    echo "<select name='categoria'>";

    switch (
    $_GET['sezione']) {
    case
    'microsoft':
    echo
    "<option value='1'>OS</option>";
    echo
    "<option value='2'>Software</option>";
    echo
    "<option value='3'>Prodotti</option>";
    echo
    "<option value='4'>News</option>";
    break;

    case
    'apple':
    echo
    "<option value='1'>OS</option>";
    echo
    "<option value='2'>Software</option>";
    echo
    "<option value='3'>iPod e iPhone</option>";
    echo
    "<option value='4'>Prodotti</option>";
    echo
    "<option value='5'>News</option>";
    break;

    case
    'office':
    echo
    "<option value='1'>Write</option>";
    echo
    "<option value='2'>Grafica</option>";
    echo
    "<option value='3'>Prodotti</option>";
    echo
    "<option value='4'>Studenti</option>";
    echo
    "<option value='5'>News </option>";
    break;

    case
    'sicurezza':
    echo
    "<option value='1'>Computer</option>";
    echo
    "<option value='2'>Mobile</option>";
    echo
    "<option value='3'>House</option>";
    echo
    "<option value='4'>Prodotti</option>";
    echo
    "<option value='5'>News </option>";
    break;

    case
    'multimedia':
    echo
    "<option value='1'>Software</option>";
    echo
    "<option value='2'>Mobile </option>";
    echo
    "<option value='3'>Prodotti</option>";
    echo
    "<option value='4'>News</option>";
    break;

    case
    'internet':
    echo
    "<option value='1'>Software</option>";
    echo
    "<option value='2'>P2P</option>";
    echo
    "<option value='3'>Mobile</option>";
    echo
    "<option value='4'>Prodotti</option>";
    echo
    "<option value='5'>News</option>";
    break;

    case
    'im':
    echo
    "<option value='1'>Skype</option>";
    echo
    "<option value='2'>Mobile</option>";
    echo
    "<option value='3'>Prodotti</option>";
    echo
    "<option value='4'>News</option>";
    break;

    case
    'live':
    echo
    "<option value='1'>Messenger</option>";
    echo
    "<option value='2'>Spaces</option>";
    echo
    "<option value='3'>Servizi</option>";
    echo
    "<option value='4'>Programmi</option>";
    echo
    "<option value='5'>News</option>";
    break;

    case
    'hardware':
    echo
    "<option value='1'>No Sub Category</option>";
    break;

    case
    'mobile':
    echo
    "<option value='1'>Software</option>";
    echo
    "<option value='2'>News</option>";
    break;

    case
    'techouse':
    echo
    "<option value='1'>Ambieti</option>";
    echo
    "<option value='2'>Prodotti</option>";
    echo
    "<option value='3'>News</option>";
    break;

    }

    echo
    "</select><br> ";
    ?>

    Peggio di prima ora non funziona niente

  4. #4
    Guest

    Predefinito

    Si scusa, hai ragione
    Codice PHP:
    Sezione:<br>
    <?php $sel = "selected=\"true\""; echo "<select onchange=\"document.location.href = '" . $_SERVER['PHP_SELF'] . "?sezione='+this.value;\">";?>
    <option value="null"></option>
    <option value="microsoft" <?=($_GET['sezione'] == "microsoft")? $sel:''?>>Microsoft</option>
    <option value="apple" <?=($_GET['sezione'] == "apple")? $sel:''?>>Apple</option>
    <option value="office" <?=($_GET['sezione'] == "office")? $sel:''?>>Office</option>
    <option value="sicurezza" <?=($_GET['sezione'] == "sicurezza")? $sel:''?>>Sicurezza</option>
    <option value="multimedia" <?=($_GET['sezione'] == "multimedia")? $sel:''?>>Multimedia</option>
    <option value="internet" <?=($_GET['sezione'] == "internet")? $sel:''?>>Internet</option>
    <option value="im" <?=($_GET['sezione'] == "im")? $sel:''?>>I'M</option>
    <option value="live" <?=($_GET['sezione'] == "live")? $sel:''?>>Live</option>
    <option value="hardware" <?=($_GET['sezione'] == "hardware")? $sel:''?>>Hardware</option>
    <option value="mobile" <?=($_GET['sezione'] == "mobile")? $sel:''?>>Mobile</option>
    <option value="techouse" <?=($_GET['sezione'] == "techouse")? $sel:''?>>Tech House</option>
    </select>
    <br>
    <br>
    <?php
    echo "<select name='categoria'>";

    switch (
    $_GET['sezione']) {
    case
    'microsoft':
    echo
    "<option value='1'>OS</option>";
    echo
    "<option value='2'>Software</option>";
    echo
    "<option value='3'>Prodotti</option>";
    echo
    "<option value='4'>News</option>";
    break;

    case
    'apple':
    echo
    "<option value='1'>OS</option>";
    echo
    "<option value='2'>Software</option>";
    echo
    "<option value='3'>iPod e iPhone</option>";
    echo
    "<option value='4'>Prodotti</option>";
    echo
    "<option value='5'>News</option>";
    break;

    case
    'office':
    echo
    "<option value='1'>Write</option>";
    echo
    "<option value='2'>Grafica</option>";
    echo
    "<option value='3'>Prodotti</option>";
    echo
    "<option value='4'>Studenti</option>";
    echo
    "<option value='5'>News </option>";
    break;

    case
    'sicurezza':
    echo
    "<option value='1'>Computer</option>";
    echo
    "<option value='2'>Mobile</option>";
    echo
    "<option value='3'>House</option>";
    echo
    "<option value='4'>Prodotti</option>";
    echo
    "<option value='5'>News </option>";
    break;

    case
    'multimedia':
    echo
    "<option value='1'>Software</option>";
    echo
    "<option value='2'>Mobile </option>";
    echo
    "<option value='3'>Prodotti</option>";
    echo
    "<option value='4'>News</option>";
    break;

    case
    'internet':
    echo
    "<option value='1'>Software</option>";
    echo
    "<option value='2'>P2P</option>";
    echo
    "<option value='3'>Mobile</option>";
    echo
    "<option value='4'>Prodotti</option>";
    echo
    "<option value='5'>News</option>";
    break;

    case
    'im':
    echo
    "<option value='1'>Skype</option>";
    echo
    "<option value='2'>Mobile</option>";
    echo
    "<option value='3'>Prodotti</option>";
    echo
    "<option value='4'>News</option>";
    break;

    case
    'live':
    echo
    "<option value='1'>Messenger</option>";
    echo
    "<option value='2'>Spaces</option>";
    echo
    "<option value='3'>Servizi</option>";
    echo
    "<option value='4'>Programmi</option>";
    echo
    "<option value='5'>News</option>";
    break;

    case
    'hardware':
    echo
    "<option value='1'>No Sub Category</option>";
    break;

    case
    'mobile':
    echo
    "<option value='1'>Software</option>";
    echo
    "<option value='2'>News</option>";
    break;

    case
    'techouse':
    echo
    "<option value='1'>Ambieti</option>";
    echo
    "<option value='2'>Prodotti</option>";
    echo
    "<option value='3'>News</option>";
    break;

    }

    echo
    "</select><br> ";
    ?>

  5. #5
    Guest

    Predefinito

    Scusa l'ennesimo disturbo il codice che mi hai dato funziona perfettamente ma mi blocca l'intero script, il file che mi hai aiutato a scrivere manda tutto al file save che dovrebbe pubblciare l'articolo nel database utilizzando il select sezione per scegliere la tabella in cui inserirlo quindi ho scritto questo codice:

    Codice PHP:
    <?
    $titolo
    =$_REQUEST['titolo'];
    $autore=$_REQUEST['autore'];
    $mail=$_REQUEST['mail'];
    $testo=$_REQUEST['testo'];
    $giorno=$_REQUEST['giorno'];
    $mese=$_REQUEST['mese'];
    $anno=$_REQUEST['anno'];
    $categoria=$_REQUEST['categoria'];
    $sezione=$_REQUEST['sezione'];
    include(
    "../top_foot.inc.php");
    include(
    "../../../script/config.php");
    top();

    if (
    trim($titolo) == "" OR trim($testo) == ""):
    echo
    "Tutti i campi devono essere riempiti";
    else :
    $titolo = addslashes(stripslashes($titolo));
    $autore = addslashes(stripslashes($autore));
    $mail = addslashes(stripslashes($mail));
    $testo = addslashes(stripslashes($testo));
    $titolo = str_replace("<", "&lt;", $titolo);
    $titolo = str_replace(">", "&gt;", $titolo);
    $autore = str_replace("<", "&lt;", $autore);
    $autore = str_replace(">", "&gt;", $autore);
    $testo = str_replace("<", "&lt;", $testo);
    $testo = str_replace(">", "&gt;", $testo);
    $testo = nl2br($testo);
    $data = mktime("00", "00", "0000", $mese, $giorno, $anno);
    $categoria = str_replace("<", "&lt;", $categoria);
    $categoria = str_replace(">", "&gt;", $categoria);
    $sezione = $sezione;

    $db = mysql_connect($db_host, $db_username, $db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Se questo errore dovesse ripetersi contattare il WebMaster");

    mysql_select_db($databse_name, $db)
    or die (
    "Errore nella selezione del database. Se questo errore dovesse ripetersi contattare il WebMaster");
    $query = "INSERT INTO portali_$sezione (titolo, testo, data, autore, mail, categoria) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail', '$categoria')";
    if (
    mysql_query($query, $db))
    echo
    "Caricamento completato. Grazie";
    else
    echo
    "Errore durante l'inserimento. Se questo errore dovesse ripetersi contattare il WebMaster";
    //endif;
    mysql_close($db);
    endif;
    foot();
    ?>
    Completa tutti i passaggi finchè non mi da questo errore:
    Errore durante l'inserimento. Se questo errore dovesse ripetersi contattare il WebMaster.

    Quindi credo che il problema sia un lettura non corretta del select sezione ma non capisco come correggere.

    Sapresti aiutarmi?

  6. #6
    Guest

    Predefinito

    Prova a modificare la query così
    Codice PHP:
    $query = "INSERT INTO portali_".$sezione." (titolo, testo, data, autore, mail, categoria) VALUES ('".$titolo."', '".$testo."', '".$data."', '".$autore."', '".$mail."', '".$categoria."')";
    Comunque ti consiglio di usare la funzione htmlentities invece di tutti quei replace.

  7. #7
    Guest

    Predefinito

    Ancora niente cmq penso che l'errore sia nel select sezione perchè quando c'era solo lui funzionava tutto.

    Grazie in anticipo per l'aiuto

  8. #8
    Guest

    Predefinito

    Infatti non c'è il nome, sostituisci quella riga con
    Codice PHP:
    <?php $sel = "selected=\"true\""; echo "<select onchange=\"document.location.href = '" . $_SERVER['PHP_SELF'] . "?sezione='+this.value;\" name='sezione'>";?>

  9. #9
    Guest

    Predefinito

    Grazie Grazie Grazie Grazie Grazie Grazie Grazie Grazie Grazie Grazie.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •