Visualizzazione risultati 1 fino 19 di 19

Discussione: Passare un ID ad uno " switch($_GET[id]) " attraverso una select

  1. #1
    Guest

    Question Passare un ID ad uno " switch($_GET[id]) " attraverso una select

    Salve a tutti
    Avrei bisogno di qualche suggerimento per un problema.

    Io vorrei passare un ID ad uno switch attraverso un select

    Codice HTML:
    	<!--selezione categorie -->
    	Categotia:<select>
    	<option>Generale</option>
    	<option>Annunci</option>
    	<option>Aquisti</option>
    	<option>Aziende</option>
    	<option>Motori</option>
    	<option>Blog</option>
    	<option>Directory</option>
    	<option>Download</option>
    	<option>Sport</option>
    	<option>Cinema</option>
    	<option>Streaming</option>
    	<option>Computer</option>
    	<option>Finanze</option>
    	<option>Fotografia</option>
    	<option>Forum</option>
    	<option>Grafica</option>
    	<option>Giochi</option>
    	<option>Internet</option>
    	<option>Musica</option>
    	<option>Network</option>
    	<option>Personal-web</option>
    	<option>Programmazione</option>
    	<option>Viaggi e Vacanze</option>
    	<option>Webmaster</option>
    	<option>Altro</option>
    	</select>
    	<!--selezione categorie -->
    in modo tale che alla selezione di un option si passi l' ID


    esempio

    selezionando Webmaster passo id=Webmaster e solgo le operazioni di quel 'CASE'

    <?php
    switch($_GET[id]){
    .
    .
    .
    case Programmazione:
    # ..................
    break;

    case Viaggi_e _Vacanze:
    # ..................
    break;

    case Webmaster:
    # ..................
    break;
    .
    .
    .

    default: Generale; //
    }
    ?>


    spero di essere stato chiaro.

    grazie in anticipo.

  2. #2
    Guest

    Predefinito

    Puoi fare così:
    Codice PHP:
    $_GET["id"] = $_POST["campo"];
    switch(
    $_GET["id"]) {
    /* ecc... */
    }
    Ciauu!!

  3. #3
    Forumanicomio non è connesso Utente
    Data registrazione
    02-07-2007
    Messaggi
    228

    Predefinito

    io ho fatto così (tu puoi facilmente adattare il tutto al tuo caso)

    Codice HTML:
    <form action='nomedelfile.php' method='post'>
                    <label for='town_ifr'>Seleziona città</label>
    		<select name='town' id='town_ifr' size='1'>
    					<option value='Agrigento'>Agrigento</option>
    					<option value='Ajaccio'>Ajaccio</option>
    					<option value='Alessandria'>Alessandria</option>
                    </select><br />
    		<input class='button' type='submit' value='Imposta' />
    </form>
    In questo modo lo script nomedelfile.php può selezionare la variabile town:

    $variabile=$_REQUEST['town']

    oppure con:

    $variabile=$_POST['town']

    a quel punto puoi fare lo switch su $variabile

  4. #4
    Guest

    Predefinito

    $variabile=$_REQUEST['town']
    Request, ormai è obsoleto da tempo! xD

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da sIM Visualizza messaggio
    Puoi fare così:
    Codice PHP:
    $_GET["id"] = $_POST["campo"];
    switch(
    $_GET["id"]) {
    /* ecc... */
    }
    Ciauu!!
    Grazie SIM

    ma mi sto incasinando un pò..

    Scusa la domanda sicuramente sciocca, ma la select deve essere messa obbligatoriamente dentro ad un form per funzionare?

    <form><select></select></form>


    ...e poi

    io voglio passare il valore di value

    <option value="Webmaster">Webmaster</option>


    ad un switch presente nella stessa pagina,
    e alla selezione ricaricare la pagina passando il valore a $_GET["id"] in modo tale da avere dati diverti ad ogni select.

  6. #6
    Guest

    Predefinito

    Allora....$_GET["id"] non è altro che in questo caso una semplice variabile...non quel index.php?id=... ok?
    Esistono le "variabili dentro" come le chiamo io in pratica sono delle variabili dentro 2 volte..es:
    Codice PHP:
    $sito["nome"] = "pixel";
    $sito["host"] = "av";
    Ora, a ogni refresh se non invii niente verrà mostrato il "default" ossia quando tu non fai nessun "?id=.." ti spunta come esempio la categoria di default...ora ti faccio un esempio pratico che così ti confondi troppo!! XDD
    Codice PHP:
    $categoria = trim($_POST["categoria"]); # ricavato dal value=".." dell'<option> del <select> che deve stare PER FORZA dentro il <form>

    switch($categoria) {
    case
    "casa":
    $categoria = "casa";
    break;

    case
    "informatica":
    $categoria = "informatica";
    break;

    case
    "altervista":
    $categoria = "altervista";
    break;

    default:
    # se non vi è stato selezionato nulla quindi è empty($categoria) oppure non è nella lista
    $categoria = "nessuna categoria";
    break;
    }

    echo
    "Hai selezionato: <b>{$categoria}</b>";
    Ultima modifica di sIM : 21-08-2009 alle ore 13.34.12

  7. #7
    Guest

    Predefinito

    grazie sim

    alla fine sono arrivato ad una conclusione

    Codice HTML:
    <!--selezione categorie -->
    	<form action="index.php" method="get">
    	<font color="#999900"><strong>Categoria:</strong></font>
    	<select name="categoria" size="1">
    	<option value="Generale" selected>Generale</option>
    	<option value="Animali">Animali</option>
    	<option value="Anime">Anime</option>
    	<option value="Annunci">Annunci</option>
    	<option value="Aquisti">Aquisti</option>
    	<option value="Aziende">Aziende</option>
    	<option value="Blog">Blog</option>
    	<option value="Cellulari">Cellulari</option>
    	<option value="Cinema">Cinema</option>
    	<option value="Computer">Computer</option>
    	<option value="Directory">Directory</option>
    	<option value="Download">Download</option>
    	<option value="Finanze">Finanze</option>
    	<option value="Fotografia">Fotografia</option>
    	<option value="Forum">Forum</option>
    	<option value="Giochi">Giochi</option>
    	<option value="Grafica">Grafica</option>
    	<option value="Informatica">Informatica</option>
    	<option value="Internet">Internet</option>
    	<option value="Motori">Motori</option>
    	<option value="Musica">Musica</option>
    	<option value="Network">Network</option>
    	<option value="Open_source">Open sourse</option>
    	<option value="Personal_web">Personal web</option>
    	<option value="Religione">Religione</option>
    	<option value="Sport">Sport</option>
    	<option value="Streaming">Streaming</option>
    	<option value="Vacanze_Viaggi">Vacanze Viaggi</option>
    	<option value="Webmaster">Webmaster</option>
    	<option value="Altro">Altro</option>
    	</select>
    	<input type="submit" value="go">
      </form>
    il php:


    Codice PHP:

    switch($_GET["categoria"]){

    case
    Generale:
    #operazione....
    break;

    case
    Animali:
    #operazione....
    break;

    case
    Anime:
    #operazione....
    break;

    .
    .
    .
    .
    .
    .
    .

    default:
    #operazione....
    }
    il risultato e sulla mia index

    ciao

  8. #8
    Guest

    Predefinito

    Dopo case il contenuto va inserito di solito nelle " " oppure ' '..es
    Codice PHP:
    case "ciao": /* ecc */ break;
    case
    'ciao': /* ecc */ break;
    Felice di averti aiutato!

  9. #9
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Se hai molte categorie, forse più che usare uno switch dovresti ragionare di array, e potresti mostrare la categoria corrente nella option box, usando selected
    Codice HTML:
    <option value="..." selected="selected"> ... </option>
    Ultima modifica di dreadnaut : 21-08-2009 alle ore 20.13.52

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Se hai molte categorie, forse più che usare uno switch dovresti ragionare di array, e potresti mostrare la categoria corrente nella option box, usando selected
    Codice HTML:
    <option value="..." selected="selected"> ... </option>
    ciao

    per gli array effettivamente hai ragione..
    per il selected

    ho fatto una prova inserendo in tutte le option selected="selected"
    ma il valore non resta visualizzato nella option box.

    come mai??

  11. #11
    Forumanicomio non è connesso Utente
    Data registrazione
    02-07-2007
    Messaggi
    228

    Predefinito

    Citazione Originalmente inviato da sIM Visualizza messaggio
    Request, ormai è obsoleto da tempo! xD
    Davvero? Mi sembrava così carino, visto che funge sia per GET che per POST...

  12. #12
    Guest

    Predefinito

    $_POST o $_GET sono molto più veloci di $_REQUEST, ormai non lo usa più (o quasi) nessuno.

  13. #13
    Guest

    Predefinito

    Crei un array con tutte le categorie, poi usi (chiesi la stessa cosa) array_key_exists() in base al valore passato via GET, così puoi lavorare con gli ID nel DB anche se passi al PHP Stringhe

  14. #14
    Guest

    Predefinito

    per le option box ho risolto la cosa in questo modo

    <option value="Generale" <?php echo "$select0";?>>Generale</option>

    passandi il valote "selected" a $select0 in modo tale che dopo il submit si avra:

    <option value="Generale" selected >Generale</option>

    e così per tutte le option box:

    <select name="categoria" size="1">
    <option value="Generale" <?php echo "$select0";?>>Generale</option>
    <option value="Animali" <?php echo "$select1";?>>Animali</option>
    <option value="Anime" <?php echo "$select2";?>>Anime</option>
    .
    .
    .

    etc.

    magari non è il modo più razionale ma mi ha risolto il problema.

  15. #15
    Guest

    Predefinito

    Ti do un consiglio.

    1- selected è deprecato, ma devi utilizzare selected="selected"
    2- Devi creare una variabile per ogni categoria quindi perchè non fai un for() e imposti un controllo che inserisce selected="selected" dove vuoi?
    Esempio banalissimo:
    Codice PHP:
    $cats = array(
    'Prova',
    'Prova 2',
    'Prova 3',
    );

    for(
    $key = 1; $key <= count($cats); $key++)
    {
    $id = $key;
    $name = $cats[$id];
    $selected = ($id == 'Quello che vuoi') ? 'selected="selected"' : '';
    }
    PS: NOn sarebbe ora di passare ad un template engine?

  16. #16
    Guest

    Predefinito

    Ho sistemato il selected...

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    PS: NOn sarebbe ora di passare ad un template engine?
    Il template engine? sicuramente semplifica un pò di cose e mi evita di non pasticciare tra HTML e PHP ....

    magari lo farò e magari cercherò dei collaboratori... vedremo in futuro

    Tu perchè mi consigli un template engine?

  17. #17
    Guest

    Predefinito

    Te lo consiglio perchè risparmieresti tante righe di codice nelle pagine e come detto tu non pasticceresti. Potresti usare la cache in modo da non dove ogni volta generare il contenuto dato che il tuo sito ha questo "problema" e diminuiresti le risorse utilizzate.


  18. #18
    Guest

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Te lo consiglio perchè risparmieresti tante righe di codice nelle pagine e come detto tu non pasticceresti. Potresti usare la cache in modo da non dove ogni volta generare il contenuto dato che il tuo sito ha questo "problema" e diminuiresti le risorse utilizzate.

    potersi spiegarti meglio... anche perchè so cos'è un template engine, ma non come funziona il tutto...

    e come può migliorare il sito in termini di risorse utilizzate..

    magari mi dai anche l'indirizzo di qualcosa che posso leggere al riguardo, possibilmente in italiano

    grazie

  19. #19
    Guest

    Predefinito

    Siamo ESTREMAMENTE ot in questo thread, spero i moderatori non prendano provvedimenti, dopo tutto il template engine potrebbe aiutare a gestire questa select.

    Comunque qui trovi il codice che uso io per il template engine, è phpbb2 based: http://forum.it.altervista.org/php-m...ile-phpbb.html

    Poi in un file globale devi istanziare la variabile template che utilizzerai successivamente per assegnare il file template, le variabili del template e il parsing.

    E' più facile a farsi che a dirsi

Regole di scrittura

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