Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Form Dinamico

  1. #1

    Form Dinamico

    Salve a tutti ragazzi.
    Vi chiedo come realizzare un qualcosa del genere.
    Io ho un form con una select:

    Codice PHP:
    <select name="moto">
    <
    option value="600">Yamaha r6</option>
    <
    option value="1600">Yamaha r1</option>
    </
    select
    Più in basso nello stesso form ho questa riga:

    Codice PHP:
    <tr><td>COSTO</td><td>?????????</td></tr
    Come è possibile fare comparire al posto dei ????????? il valore (in questo caso 600 o 1600) che l'utente seleziona nella select precedente?
    Roba da php o javascript?
    Come fare?
    Grazie a tutti.

  2. #2
    Guarda come funziona JQuery (http://jquery.com), dandogli un id al select del tipo <select id="moto">.... puoi gestire l'onchange con l'istruzione da javascript $("#moto").change(function(){....}); per recuperare il valore di una select puoi fare $("#moto").val().

  3. #3
    Scusami ma non conosco questo software e sono alle prime armi

  4. #4
    Guarda....vai sul sito http://jquery.com scarica la versione production (minified and gzipped) sulla destra (è un semplicissimo file .js basta ke fai un copia e incolla xk te lo apre nel browser), basta ke lo includi nel tuo file .html o .php con il tag <script type="text/javascript" src="jquery-1.4.2.min.js"></script> e da li lo puoi usare...i tutorial sono fatti davvero bene e ti risolve parecchie cose che con codice javascript scritto a mano t verrebbero lunghe centinaia di righe di codice...cmq in questi giorni vedo se riesco a buttare giu un esempio e te lo posto...

  5. #5
    Se riesci te ne sarei infinitamente grato.

  6. #6
    Ciao, guarda l ho fatto utilizzando semplicemente javascript senza stare li a scomodare jquery.
    eccoti il codice:

    codice:
    <html>
    
    <head>
    	<script type="text/javascript">
    	<!--
    	function setCosto(){
    		var costo = String(document.form.moto.value);    // prendo il valore della select
    		
    		document.form.costo.value = costo;           // lo setto come valore della textfield
    	}
    	-->
    	</script>
    	
    	
    	<title>Prova form dinamici</title>
    </head>
    
    <body>
    <form id="form" name="form">
    	
    
    <select name="moto" id="moto" onchange="setCosto();">
    		<option value="">Scegli il modello</option>
    		<option value="600">Yamaha r6</option>
    		<option value="1600">Yamaha r1</option>
    	</select></p>
    	
    	
    
    <label for="costo">Costo</label>
    	<input type="text" name="costo" id="costo" readonly="readonly" size="5" /></p>
    
    </form>	
    </body>
    
    
    </html>
    L'ho modificato leggermente x comodità...cioè al posto dei <tr><td></td></tr> ho messo una textfield di sola lettura...Quando vai a selezionare il modello di moto ti stampa nella textfield il suo costo...la funzione js è molto semplice: prendo il valore della select lo trasformo in stringa e lo stampo come valore della textfield. Può andare???

  7. #7
    certo è proprio quello che cercavo... Una curiosità: Se invece di stampare il nome della moto nel label avessi la necessita per esempio di caricare da mysql le informazioni della moto (nome cilindrata foto ecc) come è possibile farlo? quindi che relazione devo usare tra php e javascript?
    grazie mille

  8. #8
    Allora...prima di tutto devi connetterti al db...con php usa queste righe:
    codice:
    <?php
    /*--------------------------------------------------------------------------------------*
               		connessione A DATABASE
    *--------------------------------------------------------------------------------------*/
    
    $db_host = "localhost";
    $db_user = "usernameMysql";         // di solito è root in locale
    $db_password = "passwordMysql";  // di solito è mysql in locale
    $db_name = "nomeDB";
    
    $db = @mysql_connect($db_host, $db_user, $db_password);
    	if ($db == FALSE)
    		{
    		die ("connessione non riuscita");
    		}
    		
    mysql_select_db($db_name, $db)
    or die ("impossibile trovare database");
    
    function connessione()
    	{
    	global $db_host, $db_user, $db_password, $db_name;
    	$db = mysql_connect($db_host, $db_user, $db_password);
    	if ($db == FALSE)
    	die ("Pagina in aggiornamento - mess. 003.");                /* errore connessione */
    
    	mysql_select_db($db_name, $db)
    	or die ("Pagina in aggiornamento - mess. 004.");            /*errore selezione db */
    	}
    
    function disconnessione()
    	{
    	global $db;
    	mysql_close($db);
    	}
    ?>
    A questo punto hai la tua tabella moto con i campi (ad esempio) id/moto/costo.
    Devi fare una query e selezionare quello che ti interessa.
    codice:
    <html>
    
    <head>
    	<script type="text/javascript">
    	<!--
    	function setCosto(){
    		var costo = String(document.form.moto.value);    // prendo il valore della select
    		
    		document.form.costo.value = costo;           // lo setto come valore della textfield
    	}
    	-->
    	</script>
    	
    	
    	<title>Prova form dinamici</title>
    </head>
    
    <body>
    
    <form id="form" name="form">
    	
    
    <select name="moto" id="moto" onchange="setCosto();">
                  <option value="">Scegli il modello</option>
    <?php
    $query = "SELECT * FROM moto";
    $result = mysql_query($query);       // esegue la query al db
    
    while($row = mysql_fetch_array($result)){
    // creo l'array associativo $row che ha cm chiavi i nomi dei campi della tabella
          $moto = $row["moto"];
          $costo = $row["costo"];
    ?>
    		<option value="<?php echo $costo; ?>"><?php echo $moto; ?></option>
    <?php
    }
    ?>
    	</select></p>
    	
    	
    
    <label for="costo">Costo</label> 
    	<input type="text" name="costo" id="costo" readonly="readonly" size="5" /></p>
    
    </form>	
    </body>
    
    
    </html>
    Così ti crea dinamicamente tante option quante sono i record nella tua tabella moto. Tra php e js nn c'è bisogno di relazioni...php è un linguaggio lato server, mentre js è lato client e si relaziona direttamente con html, x cui la parte js nn va proprio toccata.

  9. #9
    Ti ringrazio pero la domanda non era quella.
    In questo campo
    Codice PHP:


    <label for="costo">Costo</label
    <
    input type="text" name="costo" id="costo" readonly="readonly" size="5" /></p
    io devo metterci qualcosa come:
    Codice PHP:
    [url="moto.php"].$row[nome].[/url
    quindi quel $row[nome] va estrapolato ogni volta al cambiamento del select precedente?
    E' chiaro l'esempio?
    Grazie

  10. #10
    Ciao, mmm...quindi se ho ben capito vorresti andare a mostrare anke un link in cui visualizzare i dettagli della moto...giusto??? Io farei così...(non sono sicuro ke vada...prova e fammi sapere... ).
    1) Scarica JQuery...vai sul sito http://jquery.com e scarica la versione come gia avevo scritto (scusa se insisto ma secondo me può essere utile ora)
    2) A questo punto il tuo codice dovrebbe diventare + o meno cs:
    codice:
    <html>
    
    <head>
            
            <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
    	<script type="text/javascript">
    	<!--
            $document.ready(function(){      // prepari il documento per lo script jquery
                   $('#link').hide();              // nascondi il div cn il link al dettaglio della moto
                   $('#moto').change(function(){    // al cambio della select
                            $('#link').show();            // mostro il link al dettaglio della moto
                   });
            });
    	function setCosto(){
    		var costo = String(document.form.moto.value);    // prendo il valore della select
    		
    		document.form.costo.value = costo;           // lo setto come valore della textfield
    	}
    	-->
    	</script>
    	
    	
    	<title>Prova form dinamici</title>
    </head>
    
    <body>
    
    <form id="form" name="form">
    	
    
    <select name="moto" id="moto" onchange="setCosto();">
                  <option value="">Scegli il modello</option>
    <?php
    $query = "SELECT * FROM moto";
    $result = mysql_query($query);       // esegue la query al db
    
    while($row = mysql_fetch_array($result)){
    // creo l'array associativo $row che ha cm chiavi i nomi dei campi della tabella
          $moto = $row["moto"];
          $costo = $row["costo"];
    ?>
    		<option value="<?php echo $costo; ?>"><?php echo $moto; ?></option>
    <?php
    }
    ?>
    	</select></p>
    	
    	
    
    <label for="costo">Costo</label> 
    	<input type="text" name="costo" id="costo" readonly="readonly" size="5" /></p>
    
            <div id="link">
            <?php echo $moto; ?>
    
            </div>
    
    </form>	
    </body>
    
    
    </html>
    Il codice dovrebbe essere abbastanza chiaro...cm vedi jquery t permette di gestire l'onchange della select in poche righe di codice....se ti piacciono effetti particolari al posto del metodo show puoi usare slideDown('slow') che fa comparsa verso il basso o fadeIn() che fa effetto fade. Per quanto riguarda il link io farei riferimento a un file moto.php dove specifichi anke il parametro id. In pratica nel file moto.php tu vai a dire:
    Codice PHP:
    <?php
         
    if(isset($_GET["id"])){
              
    $id $_GET["id"];     // prendo il valore del parametro id nell'url

              
    $query "SELECT * FROM moto WHERE id=\"$id\"";    // prendo le info della moto cn quell'id
              
    $result mysql_query($query);
              while(
    $row mysql_fetch_array($result)){
                      
    $moto $row["moto"];
                      
    $costo $row["costo"];
                      
    // così via tt le info
    ?>
         ....qua vai a stampare tt le info inserendole in qlc tag html (<table> o <div> o quello ke t piace d +).
    <?php
              
    }
         }
    ?>
    Spero d aver capito la domanda stavolta...

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.