Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    101

    Caricare un "form" dinamicamente.

    Ho l'impressione che quel pezzo di codice 'js' mi stia creando qualche confusione.
    Il problema sta nel 'form' con i due campi <select ... , di cui il secondo,
    <select name='idmodello' ......> (dinamico),
    mi carica i modelli abbinati alla scelta della marca fatta nel primo campo
    <select name='idmarca' .......> .
    Perchè quando clicco sul primo campo per scegliere la marca questi, anche passandomi esattamente i modelli abbinati, si resetta immediatamente, facendo scomparire dall'output il nome della marca scelta e ritornando sulla frase settata di default ( 'Tutti' ) ?

    Questo è il codice e spero che possiate aiutarmi.

    Codice PHP:
    -------- cerca.php --------------

    <?php
       session_start
    ();   

       if (!isset(
    $_SESSION['settore'])) {
          
    $_SESSION['settore'] = '';
       }

       if (isset(
    $_GET['settore'])) {
          
    $_SESSION['settore'] = $_GET['settore'];
       }

       if (!isset(
    $_SESSION['modello'])) {
          
    $_SESSION['modello'] = '';
       }
    ?>


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>CMS: Pneumatici.</title>
    <meta http-equiv="Content-Type"
                      content="text/html; charset=iso-8859-1" />

    <script type="text/javascript" src="./ricarica.function.js"></script>

    </head>
    <body>

    <h1>Cerca pneumatici.</h1>



    [url='aggiungi_pneumatici.php']Aggiungi pneumatici[/url] nel settore: <?php echo $_SESSION['settore'?>.</p>

    <?php
       $connessione 
    ;

       
    $seleziona_DB ;
       
       
    $marche = @mysql_query("SELECT id, marca
                                 FROM marca"
    $connessione);
       if (!
    $marche) {
          exit(
    '

    Lista marche non caricata!</p>'
    );
       }
    ?>




    <form action="modello.php" method="get">
       
       

    Scegli la Marca:</p>
       
       <label for="marca">Marca:</label>
     
    // se clicco su un nome nell'elenco del campo select, non mi appare in output,
    // ma mi appare il valore come la riga sotto ( Tutti ).
    // secondo me è impostata male la funzione "onchange=..." 
       <select name="idmarca" size="1" onchange="ricarica(this);">
       
       <option selected value="">Tutti</option>

    <?php
       
    while ($marca=mysql_fetch_array($marche)) {

          
    $idmarca=$marca['id'];

          
    $marca=htmlspecialchars($marca['marca']);

          echo 
    "<option value='$idmarca'>$marca</option>\n";
       }
       if (isset(
    $_GET['idmarca'])) {

          
    $idmarca $_GET['idmarca'];
       } else {

       
    $idmarca '';
       }

       
    $settore $_SESSION['settore'];

       
    $modelli = @mysql_query("SELECT modello.id, modello
                               FROM modello, settore
                               WHERE idmar='
    $idmarca'
                               AND settore='
    $settore'
                               AND idset=settore.id"
    $cnsdb);
       if (!
    $modelli) {
          exit(
    '

    Lista modelli non caricata!</p>'
    );
       }
    ?>

    </select>

       

    Scegli il modello:</p>

       <label for="modello">Modello:</label>

    // i valori comunque me li abbina esattamente
       <select name="modello" size="1">

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

    <?php
       
    while ($modello=mysql_fetch_array($modelli)) {

          
    $idmodello=$modello['id'];

          
    $modello=htmlspecialchars($modello['modello']);

          echo 
    "<option value='$modello'>$modello</option>\n";
       }
    ?>

    </select>




    <input type="submit" value="VAI" />
    </form>






    Torna a :[url="index_pneumatici.php"] Gestione Pneumatici.[/url]</p>

    </body>
    </html>
    e questa è la funzione '.js' richiamata :

    Codice PHP:
    ------------ricarica.function.js------------------

    function 
    ricarica(ObjectSelect) {

      var 
    Temp=ObjectSelect.options[ObjectSelect.selectedIndex].value;

      if(
    Temp!="")
       
    window.location="./cerca_pneumatici.php?idmarca="+(Temp);

     } 
    Grazie per ora!

  2. #2
    Per iniziare togli l'attributo selected dall'option "tutti", poi prova modificando questa parte
    Codice PHP:
    while ($marca=mysql_fetch_array($marche)) {

          
    $idmarca=$marca['id'];

          
    $marca=htmlspecialchars($marca['marca']);

          echo 
    "<option value='$idmarca'>$marca</option>\n";
       }
       if (isset(
    $_GET['idmarca'])) {

          
    $idmarca $_GET['idmarca'];
       } else {

       
    $idmarca '';
       } 
    così
    Codice PHP:
    $idmarca = (isset($_GET['idmarca'])) ? $_GET['idmarca'] : '';
     
    while (
    $marca=mysql_fetch_array($marche)) {

          
    $id=$marca['id'];

          
    $marca=htmlspecialchars($marca['marca']);

          if(
    $id == $idmarca) echo "<option value='$id' selected>$marca</option>\n";
          else echo 
    "<option value='$idmarca'>$marca</option>\n";
       } 

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    101
    Ciao,
    ho provato a seguire il tuo consiglio ma ..........
    Ora mi carica in output la marca selezionata, quindi problema risolto;
    ma non mi funziona il campo select dinamico dei modelli, quindi nuovo problema.

    Ho provato anche a giostrare un po i dati ma va di male in peggio.
    Resta il mio dubbio sulla chiamata alla funzione "onchange="ricarica(this);"
    che richiama la funzione "Javascript" :

    codice:
    function ricarica(ObjectSelect) { 
    
      var Temp=ObjectSelect.options[ObjectSelect.selectedIndex].value; 
    
      if(Temp!="") 
       window.location="./cerca_pneumatici.php?idmarca="+(Temp); 
    
    }
    Pensavo addirittura di cambiare metodo per richiamare il campo dinamico, non implementandolo subito nella pagina ------cerca_pneumatici.php---------, bensì caricandolo dopo la scelta della marca tipo in un altro " <div " (comunque sempre nella stessa pagina.).

    Che dici, Cubalibre810 ?

    Anche voi che leggete il messaggio, se avete qualcosa da consigliarmi, come al solito ne farò tesoro.

    Grazie.

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.