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

    Assegnazione variabile PHP da DropDownMenu e modifica contenuto pagina

    Ero indeciso se postare in PHP o in Javascript, siccome credo servano entrambi.....

    Avrei bisogno di assegnare a una variabile $s_cassetto di una pagina php un valore a scelta dell'utente.
    Tale variabile viene poi utilizzata come argomento di una funzione php che ho creato, e quest'ultima si prende il compito di scrivere un certo codice HTML.

    Il valore dovrebbe essere selezionabile da un menu a tendina, quindi quando cliccherebbe su una voce del menu, la variabile php si dovrebbe automaticamente aggiornare.

    Eccovi il codice dell'index.php

    codice:
    <?php require('searcher.php'); ?>
    
    <form> 
    <select name="scegli_cassetto" action="post" style="width: 240px; margin-bottom: 15px;"> 
    <option>Voce 1</option>
    <option>Voce 2</option>
    </select> 
    </form>
    <?php searcher($s_cassetto); ?>
    E questa è la funzione schematizzata:
    codice:
    function searcher($scelta)
    {
    	switch($scelta)
    	{
                    case 'Voce 1': /* mio output html */; break;
                    case 'Voce 2': /* mio output html */;
            }
    }
    Quindi, ricapitolando, quando si seleziona una voce del menu dropdown, automaticamente la funzione dovrebbe aggiornare l'output che scrive.
    So che ciò in puro PHP non si può fare... Ma non ho idea su come fare

    Ho provato a googlare un po ma senza esiti positivi, sapreste indicarmi una soluzione?

    grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    il submit al cambio di elemento selezionato da una select lo devi fare in javascript, ma non vedo perchè dovresti scomodare il server per cose del genere. Comunque sia ti posto il codice che fa quello che ti serve, in caso posta sulla sezione relativa a javascript se vuoi fare qualcosa di meglio.

    Codice PHP:

    <?php
        
    if(isset($_GET['scegli_cassetto'])){//se hai effettuato il submit da l'output
            
    $vocesel $_GET['scegli_cassetto'];
            switch(
    $vocesel){
                case 
    'Voce 1' : echo "...";
                       break;
                case 
    'Voce 2' : echo "...";
                       break;
            }
        }

    ?>

    <form name='f1'>
        <select name="scegli_cassetto" action="post" style="width: 240px; margin-bottom: 15px;"> 
            <option>Voce 1</option>
            <option>Voce 2</option>
       </select>
    </form>

    <script type='javascript'>
        myform = document.f1;
        myselect = document.scegli_cassetto;
        myselect.onchange= (
            function(){
                myform.submit
            }
        );
    </script>

  3. #3
    ciao, grazie per la risposta.

    Ho bisogno di php perchè la funzione che ho creato dovrebbe prendere delle variabili prese da vari form e dropdown menu, ed effettuare una query su un database.

    Non mi è chiara la funzione in Javascript

    codice:
    <script type='javascript'>
         myform = document.f1;
         myselect = document.scegli_cassetto;
         myselect.onchange= (
              function()
                          {
                           myform.submit 
                          } 
         );
    </script>
    in pratica questo controlla il valore della variabile scegli_cassetto e quando cambia stampa.. cosa stampa?
    nel senso.. tu mi hai smontato la funzione e non ho più il passaggio di argomento... o probabilmente non sto capendo il codice

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    non ti ho smontato nessuna funzione, la parte in php iniziale prendere ciò che viene passato con il form e a seconda del valore da l'output che vuoi.

    La parte in javascript invece invia i dati del form non appena selezioni un elemento dalla dropdownlist.

    Comunque avevo sbagliato a scrivere .submit, in realtà è .submit()

  5. #5
    ma così come l'hai scritto dovrebbe funzionare? (correggendo submit con le () )

    Ho provato e non va, scusami se sto dicendo magari qualche castroneria ma son quasi 9 ore che lavoro al caldo e non ragiono più molto

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    si, scusa c'è un altro errore:

    Codice PHP:

    <?php
        
    if(isset($_GET['scegli_cassetto'])){//se hai effettuato il submit da l'output
            
    $vocesel $_GET['scegli_cassetto'];
            switch(
    $vocesel){
                case 
    'Voce 1' : echo "...";
                       break;
                case 
    'Voce 2' : echo "...";
                       break;
            }
        }

    ?>

    <form name='f1' id='f1'>
        <select name="scegli_cassetto" action="post" style="width: 240px; margin-bottom: 15px;"> 
            <option>Voce 1</option>
            <option>Voce 2</option>
       </select>
    </form>

    <script type='text/javascript'>
        myform = document.f1;
        myselect = myform.scegli_cassetto;
        myselect.onchange= (
            function(){
                myform.submit();
            }
        );
    </script>

  7. #7
    ciao scusa il ritardo

    oggi provo e ti faccio sapere, grazie!

  8. #8
    Provato, non funziona molto bene, se clicco su Voce 1 non mi stampa l'output che ho indicato, voce 2 funziona.

    Comunque deve ricaricare la pagina e non va bene per ciò che devo fare.

    Ho trovato questo che credo vada bene: http://www.dynamicdrive.com/dynamici...jaxcontent.htm

    Grazie comunque

  9. #9
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Mi sembra che ci sia un po' di confusione sia su js, ma anche sul costrutto generale delle form html.
    L'action della form devi specificarlo nel tag <form>, qui non lo metti da nessuna parte.

    Quello che vuoi fare, se ho capito bene, lo ottieni con ajax (da js richiami una pagina php che ti restituisce il testo da inserire nella pagina).

    Ti consiglio di usare una framework javascript. A me piace molto mootools e tra gli esempi che trovi sul loro sito c'è qualcosa che si avvicina molto a quello che vuoi fare

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    specificare l'action se invii i dati alla pagina stessa non serve, e se fai il submit di un form alla pagina stessa, questa si ricarica, e puoi fare tutti i controlli e le query che vuoi, quindi non serve nemmeno ajax, volevo evitare di buttare altra carne sul fuoco, data la scarsa conoscenza di javascript.

    Per il resto, il funzionamento descritto "se clicco su Voce 1 non mi stampa l'output che ho indicato, voce 2 funziona", è normale visto che l'evento si scatena solo quando l'opzione viene cambiata, basta scrivere la parte in javascript nel seguente modo:

    Codice PHP:
    <script type='text/javascript'>
        
    myform document.f1;
        
    opzioni myform.scegli_cassetto.options;
        for(
    x in opzioni){
            
    opzioni[x].onclick = (
                function(){
                     
    myform.submit();
                }
            )
        }
    </script> 
    In pratica così il submit avviene al click sulla option piuttosto che al cambiamento di option selezionata.

    Detto questo, mi trovo d'accordo sul fatto che sia meglio conoscere ajax e un buon framework per javascript sia esso mootools piuttosto che jquery, ma prima dei framework andrebbe conosciuto bene javascript.

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.