Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    38

    Passaggio dati Javascript-PHP

    In un form ho inserito un elenco da cui leggo il valore selezionato con javascript sull'evento onchange.
    Questo valore dovrei passarlo come parametro a una funzione php per estrapolare dal db i valori di un altro elenco.
    Come faccio a passare la vaiabile javascript a php?
    Grazie!

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    se il tuo problema è quello classico delle select condizionate ti posto lo stesso link che ho dato qualche thread più in basso. E' fatto con ajax. Prova a fare una ricerca anche nel forum di js.

    http://www.dhtmlgoodies.com/index.ht...chained_select

    Il file php dell'esempio fa uso di uno switch ma se conosci un pò il php ci metti un attimo a trasformarlo in una query.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    38
    Il form dovrebbe contenere due elementi select, il secondo con valori letti da un db in base a quanto selezionato nel primo elemento select.
    Esempio:

    <form ...>
    <select name="sel1" size="1" onchange="var valore=document.form.sel1.value;" >
    <option ....

    in questo modo in valore ho il valore selezioanto dall'elenco

    per popolare la seconda select-list dovrei utilizzare php per accedere al db con un istruzione del tipo:

    <?php riempi_sel2(valore); ?>
    dove valore è la variabile javascript...

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Scusa, ma hai guardato il link? Fa esattamente quello.
    Scaricati l'esempio, guarda il codice e testalo in locale. Prova a convertire il file php in una query dopo esserti fatta la relativa tabella in sql. Se poi hai difficoltà posta.

  5. #5
    Scusatemi se rispolvero una discussione datata ma ho visto che il suggerimento di usare ajax per le select dinamiche è molto ben documentato. Solo che non riesco a sostituire lo switch con una query per estrarre i valori da inserire nella select da un database.(segno che non sono molto esperta di php...)
    Questo è il codice da modificare:
    Codice PHP:
    <?php

    if(isset($_GET['countryCode'])){
      
      switch(
    $_GET['countryCode']){
        
        case 
    "no":
          echo 
    "obj.options[obj.options.length] = new Option('Bergen','1');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Haugesund','2');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Oslo','3');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Stavanger','4');\n";
          
          break;
        case 
    "dk":
          
          echo 
    "obj.options[obj.options.length] = new Option('Aalborg','11');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Copenhagen','12');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Odense','13');\n";
          
          break;
        case 
    "us":
          
          echo 
    "obj.options[obj.options.length] = new Option('Atlanta','21');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Chicago','22');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Denver','23');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Los Angeles','24');\n";
          echo 
    "obj.options[obj.options.length] = new Option('New York','25');\n";
          echo 
    "obj.options[obj.options.length] = new Option('San Fransisco','26');\n";
          echo 
    "obj.options[obj.options.length] = new Option('Seattle','27');\n";
          
          break;
      }  
    }

    ?>
    C'è qualcuno che può aiutarmi?
    Grazie

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Codice PHP:
    if(isset($_GET['countryCode']))
    {
        
    $stato $_GET['countryCode'];
        
    $query mysql_query("select citta from tabella where stato = '$stato' ");

        while(
    $row mysql_fetch_assoc($query)){
        
    $citta $row['citta'];
        echo 
    "obj.options[obj.options.length] = new Option('$citta','$citta');\n";
        }   


  7. #7
    rispolvero anch'io questa discussione...

    ho fatto una prova veloce e funziona tutto, ma c'è un problema.
    al refresh della pagina, i valori caricati nella 2a select vengono resettati...
    nel mio caso lo utilizzerei per le spese di spedizione di un carrello: area geografica/modalità di pagamento.
    io sto cercando un sistema che mi permetta proprio di mantenere i valori inseriti anche dopo il refresh della pagina...



  8. #8
    scusate se rispolvero la discussione, ho provato quello che è stato postato nel secondo post.
    ho aggiunto la parte nell'head e nel body, ho scaricato il file js e l'ho messo in una subdir js.
    ho creato il file php con il contenuto del link, il problema è che qualsiasi cosa seleziono nella prima select la seconda non viene popolata di valori, dove ho sbagliato?

    ho provato sia con ff2 che con explorer7, non è che sono incompatibili?

    un grazie in anticipo

  9. #9
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    uno dei metodi migliori di scambio dati ( variabili singole o array che siano ) tra javascript e php, se non forse il migliore, si chiama JSON, trovate la documentazione ben spiegata su questo sito. Con l'uscita della versione 5.2 di php sono addirittura state inglobate 2 funzioni JSON in questo linguaggio, ovvero json_encode() e json_decode(), giusto per farvi capire quanto sia importante ed utile.
    Ciao

  10. #10
    Ciao a tutti,
    anche io ho un problema simile a quello citato, però non devo eseguire nessuna query, ma solo trasferire il valore di un timer calcolato in javascript in php.

    Vi riporto il mio problema

    <center>
    <form name="counter">
    <input type="text" size="8" name="d2">
    </form>
    </center>

    <script>
    <!--
    //
    var milisec=0
    var seconds=25
    document.counter.d2.value='25'

    function display(){

    if (milisec<=0){
    milisec=9
    seconds-=1
    }
    if (seconds<=-1){
    milisec=0
    seconds+=1
    }
    else
    milisec-=1
    document.counter.d2.value=seconds
    setTimeout("display()",100)
    }

    display()
    -->
    </script>

    Voglio spedire questo dato in un form in php però non so come fare...

    Grazie
    Gianluigi,
    responsabile sezione sportiva di
    www.zanzan.it

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.