Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Prelevare stringa da <option> in <select>

    Salve a tutti,

    dopo tantissimo tempo torno a scrivere qui per porre un quesito che mi sta facendo arrovellare!!! VVoVe:

    Io ho questo codice:
    Codice PHP:
    <form method='POST'>
                               <
    select size=\"1\" name=\"selezione\" onChange=\"submit()\">
                                <option selected>Scegli Opzione</option>
                                <option value=\"http://www.blabla.it\">BlaBla.it</option>
                                <option value=\"http://www.blabla2.it\">BlaBla2.it</option>
                                <option value=\"http://www.blabla3.it\">BlaBla3.it</option>
    </select>
    </form> 
    Ho bisogno di estrapolare il testo contenuto tra i tag <option></option>, assegnandolo ad un'ipotetica variabile $blablatxt in modo da poterla poi usare per mostrare il testo in una pagina.

    Ho provato vari modi, tra cui assegnare un nome ad ogni opzione (name=\"BlaBla.it\"), usando la funzione strip_tags() e la funzione fgetss() ma l'esito è stato sempre lo stesso! Nada de nada, al massimo mi estrae il valore assegnato. :master:

    Qualcuno saprebbe aiutarmi?

    Grazie mille
    It's the only that we have...
    Save our Mother Earth...
    Salviamo Gea!!! :quipy:
    No War!!! >>---> JUST CLAIM FOR PEACE!!!!

  2. #2
    se metti in $testo tutto il codice html prova:
    codice:
    preg_match_all('/\<option.*\>(.*)\<\/option\>/Ui',$testo,$matched);
    print_r($matched[1]);
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  3. #3
    Grazie Anªkin,

    ho provato ma non da il risultato che vorrei ottenere, in pratica con quel codice, l'unica cosa che viene visualizzata è un "1" e null'altro

    è possibile che abbia sbagliato qualcosa???

    Grazie mille
    It's the only that we have...
    Save our Mother Earth...
    Salviamo Gea!!! :quipy:
    No War!!! >>---> JUST CLAIM FOR PEACE!!!!

  4. #4
    Non è che hai fatto una cosa tipo $var = preg_match_all()? Perche la funzione restituisce il numero di riconoscimenti effettuati.
    Per visualizzare i valori restituiti da preg_match_all devi usare gli elementi di $matched[1], quindi con un ciclo for:
    codice:
    $options = $matched[1];
    for($i=0; $i<count($options); $i++)
    echo $options[$i].'
    ';
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  5. #5
    Forse faccio prima a farti un esempio del codice che ho usato per creare un blocco, altrimenti non saprei proprio come fare per spiegarmi in altro modo (sono un vero asino in quanto a php)

    Allora, ho creato un blocco da inserire nel mio portale in modo da poter ascoltare radio in streaming usando il plug-in di Win Media Player, il codice del blocco è:

    Codice PHP:
    <?
    if (isset($_POST['radio'])) {
                
    $stream $_POST['radio'];
                
    $embed "<embed src=$stream type=\"video/x-ms-asf-plugin\"
    pluginspage=\"http://www.microsoft.com/windows/mediaplayer/download/default.asp\"
    align=\"middle\" width=\"115\" height=\"40\" autostart=\"1\" 
    showcontrols=\"1\" showdisplay=\"false\" showstatusbar=\"True\" showpositioncontrols=\"0\"
    showaudiocontrols=\"1\" showtracker=\"0\" showgotobar=\"0\"
    showcaptioning=\"0\" autorewind=\"0\" animationatstart=\"1\"
    transparentatstart=\"0\" allowchangedisplaysize=\"0\"
    allowscan=\"0\" enablecontextmenu=\"0\"></embed>"
    ;
               
             } else {
                
    $stream "";
                
    $embed "";

             }
     
            
    $content "                
                        <td align=\"center\" valign=\"middle\">
                            [b]Seleziona la tua Radio Preferita
    tra quelle proposte qui sotto.

    <font color=\"red\"><blink>E buon ascolto!!!</blink></font>[/b]


    On Air now:
    <font color=\"blue\">[b]<marquee scrolldelay=\"300\">
    $onair
    </marquee>[/b]</font>

    <form method='POST'>
                               <select size="
    1\" name=\"radio\" onChange=\"submit()\">
                                <option selected>Scegli Opzione</option>
                                <option value=\"http://www.radio1.it\">Radio1</option>
                                <option value=\"http://www.radio2.it\">Radio2</option>
                                <option value=\"http://www.radio3.it\">Radio3</option>
    </select>
    </form>
    $embed
    </td>"
    ;
    ?>
    NB: ho mandato io a capo il codice sennò incasinava la pagina del forum.

    Ecco... Se noti nel $content ho una variabile $onair, che dovrebbe essere quella cui assegnare il "nome" della radio selezionata dall'utente, in modo tale da essere visibile nel corpo del blocco. Ma non so assolutamente come fare!!!

    Ho pensato di cambiare i tag <option value=...> in <option name=\"Radio1\" value=...> ma non ha funzionato (non so se potrebbe) perché non saprei come prelevare quel parametro dal tag. Ho fatto prove su prove ma al massimo sono riuscito a prelevare l'URL.
    Guardando i tuoi 2 post, un qualcosa mi è balenato ma il problema è che non sapendo programmare in php se non prendendo spunto da altro (mi va bene che a scuola ho studiao Pascal quindi riesco un po' a leggere il codice), non riesco a capire come usarli, sempre che siano quelle istruzioni da usare (per questo ho postato il codice).

    Avevo anche pensato a come poter risolvere il problema che si verifica quando si naviga nel sito e che causa un riazzeramento delle variabili e quindi l'utente è costretto a riselezionare la radio. Ma questa è un'altra storia mi sa .

    Sapresti mica aiutarmi???

    Eternamente grato

    R"C"R
    It's the only that we have...
    Save our Mother Earth...
    Salviamo Gea!!! :quipy:
    No War!!! >>---> JUST CLAIM FOR PEACE!!!!

  6. #6
    Capito (spero ). Una soluzione rapida potrebbe essere inserire in value sia il nome che l'indirizzo divisi da un carattere univoco tipo il cancelletto #.
    codice:
    <option value="www.radio1.com#La mia radio">La mia radio</option>
    Questo lo fai per ogni option.
    E in fase di controllo modifichi in questo modo:

    codice:
    if (isset($_POST['radio'])) {
    $tmp = explode('#',$_POST['radio']);
                $stream = $tmp[0]; 
    	    $onair= $tmp[1];
                $embed = "blablabla";
               
             } else {
                $stream = "";
                $embed = "";
    	    $onair=false; // riga aggiunta 
             }
    // etc etc
    nella seconda riga la funzione explode suddivide la stringa usando, in questo caso, il cancelletto come separatore e restituendo un array con le sottostrighe. E' chiaro che la stringa che sta in in value deve contenere un solo cancelletto.
    Poi dovresti impostare il selected in modo che visualizzi la scelta dell'utente.
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  7. #7
    Grazie mille

    Adesso provo!!! Non riesco solo a capire la questione del "select" cui hai accennato alla fine

    Ti faccio sapere se funziona
    It's the only that we have...
    Save our Mother Earth...
    Salviamo Gea!!! :quipy:
    No War!!! >>---> JUST CLAIM FOR PEACE!!!!

  8. #8
    Fuziona perfettamenteeeeeeeee ^^

    grassie grassie grassie Anªkin

    Sei davvero gentilissimo

    ora me resta solo da capire cosa intendevi con la questione del "select"

    A presto
    It's the only that we have...
    Save our Mother Earth...
    Salviamo Gea!!! :quipy:
    No War!!! >>---> JUST CLAIM FOR PEACE!!!!

  9. #9

    Guardando il codice html la prima opzione <option> ha l'attributo selected fisso. Per fare in modo che dopo la scelta dell'utente il menu a tendina visualizzi la radio scelta dovresti impostare un controllo in modo da scrivere il "selected" all'interno della option effettivamente selezionata. Ma effettivamente va anche bene che visualizzi "Scegli Opzione" dato che la radio selezionata già la indichi da un'altra parte.
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  10. #10
    Sisisisisi!!!

    Così è come lo volevo

    Sei stato mitico

    Grassie ancora

    A prestoooo
    It's the only that we have...
    Save our Mother Earth...
    Salviamo Gea!!! :quipy:
    No War!!! >>---> JUST CLAIM FOR PEACE!!!!

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.