Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Combo Box & SQL

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    14

    Combo Box & SQL

    Vorrei creare un data entry composto da una o più combobox (menu a tendina) in cui le voci presenti nella tendina derivino da una select di una tabella e quindi passare poi la scelta effettuata ad un'altra select.

    Ho tentato cercando di integrare le form di Front Page con PHP ma non sono stato in grado nè di popolare la lista di valori, ne di passare con metodo POST la scelta alla successiva query.


    Qualche consiglio?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    non ho capito molto bene

  3. #3
    ehm...Front Page??

    Comunque, la cosa che chidei tu si può fare con l'uso congiunto di php & js, nel senso che con php ti fai le tue belle query e ti popoli le combobox, con js fai aggiornare la pagina, in modo che i tuoi valori vengano passati al form e ti viene quindi possibile fare la query successiva.
    So che detto così sembra incomprensibile, ma non ho trovato parole migliori cercherò di renderti tutto più comprensibile con un esempio.
    l'esempio che ti faccio è fatto con due combo, una che ti estrae i continenti da una tabella in un db, e la seconda che a seconda del continente selezionato, ti seleziona le nazioni di quel continente.

    Continenti:
    codice:
    <?
      $sql1 = "SELECT * FROM continenti ORDER BY continente";
      $res1 = mysql_query($sql1)or die("Errore nell'estrazione dei continenti: ".mysql_error());
    ?>
    <select name="continente" onChange="inviaCambiamenti()">
    <option value="" selected> - Seleziona - </option>
    <?	
      while ($row1 = mysql_fetch_assoc($res1)){	
        if(!empty($continente)){
    	if ($row1['id'] <> $continente)
    	  echo '<option value="'.$row1['id'].'" >'.$row1['continente'].'</option>';
    	else					
    	  echo '<option value="'.$row1['id'].'" SELECTED>'.$row1['continente'].'</option>';
        }else 
          echo '<option value="'.$row1['id'].'">'.$row1['continente'].'</option>';
      }	
    ?>
    </select>
    Nazioni:

    codice:
    <?
      if ($continente == '')	$sql2 = "SELECT * FROM nazioni ORDER BY nazione";
      else	$sql2 = "SELECT * FROM nazioni WHERE continente LIKE '$continente' ORDER BY nazione";
    	
      $res2 = mysql_query($sql2)or die("Errore nell'estrazione delle nazioni: ".mysql_error());
    ?>
    <select name="nazione">
    <option value="" selected> - Seleziona - </option>
    <?	
    while ($row2 = mysql_fetch_assoc($res2)){	
      if(!empty($nazione)){
        if ($row2['id'] <> $nazione)
    	echo '<option value="'.$row2['id'].'" >'.$row2['nazione'].'</option>';
        else					
    	echo '<option value="'.$row2['id'].'" SELECTED>'.$row2['nazione'].'</option>';
      }else 
         echo '<option value="'.$row2['id'].'">'.$row2['nazione'].'</option>';
    }
    ?>
    </select>
    La funzione che viene eseguita all'onChange è una funzione js, la puoi mettere direttamente nell'head dell'html:

    inviaCambiamenti()
    codice:
    <script type="text/javascript">
    function inviaCambiamenti(){
    	document.form.action = "<?php	echo $PHP_SELF;	?>";
    	document.form.submit();
    }
    </script>
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  4. #4
    doppio
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    14
    Mo ci provo...grazie

  6. #6
    Utente di HTML.it L'avatar di Mi|{y
    Registrato dal
    Apr 2003
    Messaggi
    117
    Ciao
    Ho anche io un problema simile ... ho una serie

    combomarca1
    --combosottomarca1di1
    --combosottomarca2di1
    --combosottomarca3di1
    --combosottomarca4di1
    combomarca2
    --combosottomarca1di2
    --combosottomarca2di2
    --combosottomarca3di2
    --combosottomarca4di2

    Stavo provando col codice 13manuel84 ma quando selezioni la marca mi da un errore di document.form nullo!

    Qualcuno mi può chiarire le idee.. dove sbaglio?
    Grazie mille

  7. #7
    hai un form nella tua pagina?se no ce lo devi mettere, chiamalo per comodità form.
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    14
    Confermo che il codice di AMnuel funziona....ritenta.

    Anzi ...
    GRAZIE MANUEL

  9. #9
    Utente di HTML.it L'avatar di Mi|{y
    Registrato dal
    Apr 2003
    Messaggi
    117
    Ok funziona .. frontpage mi aveva inserito altre due aperture di form che nn mi servivano...

    il problema è che in quella pagina gli passo una variabile per far comparire un form o un'altro rispetto alle scelte fatte precedentemente e modificando la funzione in questo modo

    [CODE]<script type="text/javascript">
    function inviaCambiamenti(){
    document.form.action = "<?php header("Location: pag.php?opz2=true"); ?>";
    document.form.submit();
    }
    </script>[CODE]

    mi sta una vita a caricare e non succede nullaa... se nn c'è rimedio divido le due form in due pagine diverse .. che dite?

  10. #10
    Utente di HTML.it L'avatar di Mi|{y
    Registrato dal
    Apr 2003
    Messaggi
    117
    Ho risolto così..
    codice:
    <script type="text/javascript">
    function inviaCambiamenti(){
    	document.form.action = "<?php	echo $PHP_SELF.'?opz1=true';	?>";
    	document.form.submit();
    }
    </script>
    ma come pensavo non rimangono i dati selezionati nella prima combo
    e no ho altri due di combo da applicare la funzione inviaCambiamenti(); prima di salvare tutti i dati selezionati.. mmm baa vedo di risolvere in qualche maniera :master:

    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.