Riempire una combo da una scelta

minatore

Utente Attivo
25 Set 2007
410
0
0
Buongiorno a tutti, è la prima volta che scrivo in questa sezione, vi dico subito che di javascript non ne capisco, ma ho dovuto farne uso solo perchè con php non è possibile fare ciò che mi appresto a dirvi.
Prima di postare ho girato un po nel web per trovare qualcosina che si avvicinasse al mio problema, ma invano.
E' sempre la solita storia, quella delle regioni e delle province e dei comuni
in una pagina php ho bisogno che a seconda della scelta della combo marche, mi si aggiornasse la cobo dei modelli.
In giro ho trovato questo script che vi copio pari pari
PHP:
<script type="text/javascript">
function Menu(links)
	{
     	location.href = links[links.selectedIndex].value;
	}
<select onChange="Menu(this)">
<?php
	$query_2=mysql_query("SELECT * FROM t_marche")
	or die("errore nella query;".mysql_error());
	for($b=0; $b<mysql_num_rows($query_2);$b++)
		{
			$elenco_marche=mysql_fetch_assoc($query_2);
				print"
					<option value='".intval($elenco_marche['id_marca'])."'>
					".$elenco_marche['desc_marca']."
					</option>";
		}
?>
</select>
questo no fa altro che alla scelta della voce nella combo mi va ad aprire un url (diciamo cosi, in parole povere)
io invece vorrei che mi aggiornasse un'altra combo avendo sempre dentro i dati presi da una tabella.
Avete già qualcosa di questo tipo?
Altrimenti con un poco di pazienza da parte vostra ci possiamo lavorare insieme
Grazie in anticipo
 

minatore

Utente Attivo
25 Set 2007
410
0
0
Ciao Alessandro, mi sono letto tutto l'articolo ed ho copiato tutto, spero di sbagliarmi manon da risultati, l'esempio è proprio quello giusto
index.php
PHP:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
// Select Province e Comuni dalla Regione. 
function selProvCom(idRegion)
	{
  		// Seleziono province di questa regione. 
  		$.get("select_abitativa.php", 
			{ 
				regionid: idRegion, requestItems: 'province'
			}, 
  		function(dataProvince)
			{
    			$("select[id='province']").empty();
    			var options = '<option value="">-- seleziona --</option>';
    			var arrayProvince = dataProvince.split( '||');
    			for (var i = 1; i < arrayProvince.length; i++) 
					{
      					var provincia = arrayProvince[i].split( /,/);
      					options += '<option value="' + provincia[0] + '">' + provincia[1] + '</option>';
    				}
    			$("select[id='province']").html(options);
  			});
  		// Seleziono comuni di questa regione. 
  		$.get("select_abitativa.php", 
			{ 
				regionid: idRegion, requestItems: 'comuni'
			}, 
  		function(dataComuni)
			{
    			$("select[id='city']").empty();
				var options = '<option value="">-- seleziona --</option>';
				var arrayComuni = dataComuni.split( '||');
    			for (var i = 1; i < arrayComuni.length; i++) 
					{
      					var comune = arrayComuni[i].split( /,/);
      					options += '<option value="' + comune[0] + '">' + comune[1] + '</option>';
    				}
    			$("select[id='city']").html(options);
  			});
	}

// Select Comuni dalla Provincia. 
function selCom(idProvincia) 
	{
  		// Seleziono comuni di questa provincia. 
  		$.get("select_abitativa.php", 
			{ 
				provinciaid: idProvincia, requestItems: 'comuni'
			}, 
  		function(dataComuni)
			{
    			$("select[id='city']").empty();
    			var options = '<option value="">-- seleziona --</option>';
    			var arrayComuni = dataComuni.split( '||');
    			for (var i = 1; i < arrayComuni.length; i++) 
					{
      					var comune = arrayComuni[i].split( /,/);
      					options += '<option value="' + comune[0] + '">' + comune[1] + '</option>';
    				}
    			$("select[id='city']").html(options);
  			});
	}
</script>
</head>
<body>

<p>
<label for="region">Regione:</label><br />
<select id="region" name="region" onchange="selProvCom(this.value);">
<option value="" selected="selected">-- seleziona --</option>
<?php
// Collegamento ad database. 
require 'connessione/Config.php';
require 'connessione/Connect.php';

// Query selezione tutte le regioni. 
$sql = mysql_query("select * from regioni order by regione"); 

// Eseguo la query. 
//$result = mysql_query($sql, $conn); 
while($region = mysql_fetch_array($sql)) {
?>
<option value="<?php echo $region['id']; ?>"><?php echo $region['regione']; ?></option>
<?php
}
?>
</select>
</p>
<p>
<label for="province">Provincia:</label><br />
<select id="province" name="province" onchange="selCom(this.value);">
<option value="" selected="selected">-- seleziona --</option>
<?php

// Query selezione tutte le province. 
$sql1 = mysql_query("select * from province order by provincia"); 

// Eseguo la query. 
//$result = mysql_query($sql, $conn); 
while($province = mysql_fetch_array($sql1)) {
?>
<option value="<?php echo $province['id']; ?>"><?php echo $province['provincia']; ?></option>
<?php
}
?>
</select>
</p>
<p>
<label for="city">Città:</label><br />
<select id="city" name="city">
<option value="" selected="selected">-- seleziona --</option>
</select>
</p>
</body>
</html>
select_abitativa.php
PHP:
<?php
// Seleziona Province e Comuni. 
require 'connessione/Config.php';
require 'connessione/Connect.php';	

// Seleziona Province e Comuni. 
//include("dbconfig.php");

if (isset($_GET['regionid']) and is_numeric($_GET['regionid'])) {
  if (isset($_GET['requestItems']) and $_GET['requestItems']==='province') {
    $regionID = intval($_GET['regionid']);
    //$query = <<<EOQ
$query = mysql_query("SELECT * 
FROM province 
WHERE id_regione = '$regionID' 
ORDER BY provincia");
//EOQ;
    //$result = mysql_query($query, $conn);
    $returnProvince = '';
    while ($row = mysql_fetch_array($query)) {
      $returnProvince .= "||".$row['id'].",".$row['provincia'];
    }
    print_r($returnProvince);
  } 
  else if (isset($_GET['requestItems']) and $_GET['requestItems']==='comuni') {
    $regionID = intval($_GET['regionid']);
    //$query2 = <<<EOQ
$query2 = mysql_query("SELECT * 
FROM comuni 
WHERE id_regione = '$regionID' 
ORDER BY comune");
//EOQ;
    //$result = mysql_query($query, $conn);
    $returnComuni = '';
    while ($row2 = mysql_fetch_array($query2)) {
      $returnComuni .= "||".$row2['id'].",".$row2['comune'];
    }
    print_r($returnComuni);
  }
} 
else if (isset($_GET['provinciaid']) and is_numeric($_GET['provinciaid'])) {
  if (isset($_GET['requestItems']) and $_GET['requestItems']==='comuni') {
    $provinciaID = intval($_GET['provinciaid']);
    //$query3 = <<<EOQ
$query3 = mysql_query("SELECT * 
FROM comuni 
WHERE id_provincia = '$provinciaID' 
ORDER BY comune");
//EOQ;
    //$result = mysql_query($query, $conn);
    $returnComuni = '';
    while ($row3 = mysql_fetch_array($query3)) {
      $returnComuni .= "||".$row3['id'].",".$row3['comune'];
    }
    print_r($returnComuni);
  }
}
?>
ho fatto un semplice copia e incolla, ed ho modificato un poco la struttura della query, ma nel concreto penso di non aver cambiato nulla
Grazie ancora
 
Ultima modifica:

minatore

Utente Attivo
25 Set 2007
410
0
0
Ciao, qualcuno potrebbe darmi un suggerimento
è vero che questa cosa già è stata fatta, ma che colpa ne ho io se sono arrivato adesso
lo script lo provato ma non funziona

Ciao:hammer:
 

minatore

Utente Attivo
25 Set 2007
410
0
0
Ma hai scaricato jQuery e lo hai copiato nella cartella appropriata?
:confused: Jquery da dove devo scaricarlo
ok scaricato jQuery.js, ma lo stesso non va
volevo anche chiedere perchè è piena anche la seconda combo quelle delle province per intenderci, non dovrebbe essere vuota come quella dei comuni e poi riempirsi alla scelta della regione?
Ciao
 
Ultima modifica:

minatore

Utente Attivo
25 Set 2007
410
0
0
:confused: Jquery da dove devo scaricarlo
ok scaricato jQuery.js, ma lo stesso non va
volevo anche chiedere perchè è piena anche la seconda combo quelle delle province per intenderci, non dovrebbe essere vuota come quella dei comuni e poi riempirsi alla scelta della regione?
Ciao

:mavieni::mavieni::mavieni:
Scusami, avevo fatto un errore, funziona
adesso cerco di adattarlo a ciò che mi serve poi ti farò sapere
spero di non avere problemi

Ciao e grazie0:)
 

minatore

Utente Attivo
25 Set 2007
410
0
0
Ciao Alessandro, ho un piccolo problema ho inserito il tuo script in 2 pagine come da esempio e funziona, poi lo trasferisco dove mi serve e non funziona più
ti posto lo script
reg_articolo.php
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-type" content="text/html;charset=utf-8">
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
----------------------------------------------------------------------------------
// Select Province e Comuni dalla Regione. 
function selProvCom(idRegion) {
  // Seleziono province di questa regione. 
  $.get("select_abitativa.php", { regionid: idRegion, requestItems: 'province'}, 
  function(dataProvince){
    $("select[id='province']").empty();
    var options = '<option value="">-- seleziona --</option>';
    var arrayProvince = dataProvince.split( '||');
    for (var i = 1; i < arrayProvince.length; i++) {
      var provincia = arrayProvince[i].split( /,/);
      options += '<option value="' + provincia[0] + '">' + provincia[1] + '</option>';
    }
    $("select[id='province']").html(options);
  });
--------------------------------------------------------------------------------
  // Seleziono comuni di questa regione. 
  $.get("select_abitativa.php", { regionid: idRegion, requestItems: 'comuni'}, 
  function(dataComuni){
    $("select[id='city']").empty();
    var options = '<option value="">-- seleziona --</option>';
    var arrayComuni = dataComuni.split( '||');
    for (var i = 1; i < arrayComuni.length; i++) {
      var comune = arrayComuni[i].split( /,/);
      options += '<option value="' + comune[0] + '">' + comune[1] + '</option>';
    }
    $("select[id='city']").html(options);
  });
}

// Select Comuni dalla Provincia. 
function selCom(idProvincia) {
  // Seleziono comuni di questa provincia. 
  $.get("select_abitativa.php", { provinciaid: idProvincia, requestItems: 'comuni'}, 
  function(dataComuni){
    $("select[id='city']").empty();
    var options = '<option value="">-- seleziona --</option>';
    var arrayComuni = dataComuni.split( '||');
    for (var i = 1; i < arrayComuni.length; i++) {
      var comune = arrayComuni[i].split( /,/);
      options += '<option value="' + comune[0] + '">' + comune[1] + '</option>';
    }
    $("select[id='city']").html(options);
  });
}
</script>
</head>
<body>
<form name="Form" method="post" action="add_articoli">
<table cellpadding="0" cellspacing="0" border="0" width="430">
	<tr>
    	<td align="left" height="18" bgcolor="#333333">
        	<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">
            	&nbsp;Registrazione articolo
            </font>
        </td>
    </tr>
    <tr><td height="9"></td></tr>
</table>
<table cellspacing="0" cellpadding="0" border="0">
   <tr>
    	<td align="left" width="110" height="25">
        	<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
            	Codice articolo
            </font>
        </td>
        <td align="left">
        	<input type="text" name="cod_a"
            style="font-family: Verdana, Palatino Linotype, Arial, Century Gothic, Helvetica;
			font-size: 8pt; width:130px; height:15px;">
        </td>
    </tr>
    <tr>
    	<td align="left" width="110" height="25">
        	<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
            	Codice originale
            </font>
        </td>
        <td align="left">
        	<input type="text" name="cod_o"
            style="font-family: Verdana, Palatino Linotype, Arial, Century Gothic, Helvetica;
			font-size: 8pt; width:130px; height:15px;">
        </td>
    </tr>
    <tr>
    	<td align="left" width="110" height="25">
        	<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
            	Selez. categoria
            </font>
        </td>
        <td align="left">
        	<select name="doc" style="font-family: Verdana, Palatino Linotype, Arial, Century Gothic, Helvetica;
			font-size: 8pt; width:136px; height:21px;">
            <?php
				require 'connessione/Config.php';
				require 'connessione/Connect.php';			
				$query_1=mysql_query("SELECT * FROM t_categorie")
				or die("errore nella query;".mysql_error());
				for($a=0; $a<mysql_num_rows($query_1);$a++)
					{
						$elenco_categ=mysql_fetch_assoc($query_1);
							print"
								<option value='".intval($elenco_categ['id_categoria'])."'>
								".$elenco_categ['desc_categoria']."
								</option>";
					}
			?>
            </select>
        </td>
    </tr>
    <tr>
    	<td align="left" width="110" height="25">
        	<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
            	Seleziona marca
            </font>
        </td>
        <td align="left">
        	<select id="region" name="region" onChange="selProvCom(this.value);"
            style="font-family: Verdana, Palatino Linotype, Arial, Century Gothic, Helvetica;
			font-size: 8pt; width:136px; height:21px;">
            <option value="" selected="selected">seleziona marca</option>
            <?php
				$query_2=mysql_query("SELECT * FROM t_marche")
				or die("errore nella query;".mysql_error());
				for($b=0; $b<mysql_num_rows($query_2);$b++)
					{	
						$elenco_marche=mysql_fetch_assoc($query_2);
							print"
								<option value='".intval($elenco_marche['id_marca'])."'>
								".$elenco_marche['desc_marca']."
								</option>";
					}
			?>
            </select>
        </td>
    </tr>
    <tr>
    	<td align="left" width="110" height="25">
        	<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
            	Selez. modello
            </font>
        </td>
        <td align="left">
        	<select id="city" name="city"
            style="font-family: Verdana, Palatino Linotype, Arial, Century Gothic, Helvetica;
			font-size: 8pt; width:136px; height:21px;">
			<option value="" selected="selected">seleziona modello</option>
			</select>
        </td>
    </tr>
    <tr>
    	<td align="left" width="110" height="25">
        	<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
            	Nome articolo
            </font>
        </td>
        <td align="left">
        	<input type="text" name="nome_a"
            style="font-family: Verdana, Palatino Linotype, Arial, Century Gothic, Helvetica;
			font-size: 8pt; width:300px; height:15px;">
        </td>
    </tr>
    <tr>
    	<td align="left" width="110" height="25">
        	<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
            	Imponib acquisto
            </font>
        </td>
        <td align="left">
        	<input type="text" name="nome_a"
            style="font-family: Verdana, Palatino Linotype, Arial, Century Gothic, Helvetica;
			font-size: 8pt; width:80px; height:15px;">
        </td>
    </tr>
    <tr>
    	<td align="left" width="110" height="25">
        	<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
            	Imposta %
            </font>
        </td>
        <td align="left">
        	<select name="doc" style="font-family: Verdana, Palatino Linotype, Arial, Century Gothic, Helvetica;
			font-size: 8pt; width:50px; height:21px;">
            <?php
				$query_3=mysql_query("SELECT * FROM t_iva")
				or die("errore nella query;".mysql_error());
				for($c=0; $c<mysql_num_rows($query_3);$c++)
					{
						$elenco_iva=mysql_fetch_assoc($query_3);
							print"
								<option value='".intval($elenco_iva['id_iva'])."'>
								".$elenco_iva['desc_iva']."
								</option>";
					}
			?>
            </select>
        </td>
    </tr>
    <tr>
    	<td align="left" width="110" height="25">
        	<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
            	Imponib vendita
            </font>
        </td>
        <td align="left">
        	<input type="text" name="nome_a"
            style="font-family: Verdana, Palatino Linotype, Arial, Century Gothic, Helvetica;
			font-size: 8pt; width:80px; height:15px;">
        </td>
    </tr>
    <tr>
    	<td align="left" width="110" height="25">
        	<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
            	Quantit&agrave;
            </font>
        </td>
        <td align="left">
        	<input type="text" name="nome_a"
            style="font-family: Verdana, Palatino Linotype, Arial, Century Gothic, Helvetica;
			font-size: 8pt; width:43px; height:15px;">
        </td>
    </tr>
    <tr>
    	<td align="left" width="110" height="75">
        	<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
            	Note
            </font>
        </td>
        <td align="left">
        	<textarea name="nome_a"
            style="font-family: Verdana, Palatino Linotype, Arial, Century Gothic, Helvetica;
			font-size: 8pt; width:300px; height:65px;">
            </textarea>
        </td>
    </tr>
    <tr>
    	<td align="left" width="110" height="25">
        	<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
            	Seleziona
            </font>
        </td>
        <td align="left">
        	<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
            	3 porte
            </font>
        	<input type=checkbox name="nome_a">
        </td>
    </tr>
</table>
</form>
</body>
</html>
select_abitativa.php
PHP:
<?php
// Seleziona Province e Comuni. 
require 'connessione/Config.php';
require 'connessione/Connect.php';

if (isset($_GET['regionid']) and is_numeric($_GET['regionid'])) {
  if (isset($_GET['requestItems']) and $_GET['requestItems']==='province') {
    $regionID = intval($_GET['regionid']);
    $query = <<<EOQ
SELECT * 
FROM t_modelli 
WHERE id_marca = '$regionID' 
ORDER BY desc_modello
EOQ;
    $result = mysql_query($query);
    $returnProvince = '';
    while ($row = mysql_fetch_array($result)) {
      $returnProvince .= "||".$row['id_modello'].",".$row['desc_modello'];
    }
    print_r($returnProvince);
  } }
  /*else if (isset($_GET['requestItems']) and $_GET['requestItems']==='comuni') {
    $regionID = intval($_GET['regionid']);
    $query = <<<EOQ
SELECT * 
FROM comuni 
WHERE id_regione = '$regionID' 
ORDER BY comune
EOQ;
    $result = mysql_query($query);
    $returnComuni = '';
    while ($row = mysql_fetch_array($result)) {
      $returnComuni .= "||".$row['id'].",".$row['comune'];
    }
    print_r($returnComuni);
  }
} 
else if (isset($_GET['provinciaid']) and is_numeric($_GET['provinciaid'])) {
  if (isset($_GET['requestItems']) and $_GET['requestItems']==='comuni') {
    $provinciaID = intval($_GET['provinciaid']);
    $query = <<<EOQ
SELECT * 
FROM comuni 
WHERE id_provincia = '$provinciaID' 
ORDER BY comune
EOQ;
    $result = mysql_query($query);
    $returnComuni = '';
    while ($row = mysql_fetch_array($result)) {
      $returnComuni .= "||".$row['id'].",".$row['comune'];
    }
    print_r($returnComuni);
  }
}*/
?>
inoltre ti ho segnato la parte jscript che non ho capito come modificare
 

Allegati

  • 3.jpg
    3.jpg
    29,9 KB · Visite: 395

minatore

Utente Attivo
25 Set 2007
410
0
0
Ciao di nuovo, adesso funziona, avevo mancato il codice che riempiva la seconda combo, però sembra strano, se volessi una cosa del genere, ti spiego
se la combo marche non ha nessuna selezione, la combo modelli dovrebbe essere vuota
sto dicendo una cavolata o questa cosa è fattibile
Se mi potresti spiegare il codice js che ti ho selezionato sopra così da modificarlo per il mio script
Comunque ti ringrazio per tutto
Ciao:hammer:
 
Discussioni simili
Autore Titolo Forum Risposte Data
O Riempire una box di testo dal centro HTML e CSS 1
S Riempire textbox prendendo i dati selezionati da una listbox PHP 2
B Leggere una directory e riempire un array. PHP 5
S [PHP] Riempire una casella select con query SQL PHP 11
F riempire una select dopo un submit Javascript 0
D riempire campo inserendo un valore in un altro campo PHP 2
F [Photoshop] come riempire un area selezionata su un layer trasparente con colore solido Photoshop 0
D [WordPress] [PHP] Pulsante per auto riempire i campi in un modulo WordPress 1
giancadeejay Riempire dinamicamente un campo PHP PHP 2
LuigiDonato Riempire Spazio Vuoto HTML e CSS 3
L riempire l'input file con value? PHP 3
Emix Riempire campi direttamente tramite cerca.... PHP 8
P select da riempire tramite text PHP 39
L riempire le select coi valori dei campi di input Javascript 3
P Riempire due insert in due tabelle diverse PHP 145
N riempire un dominio acquistato Hosting 0
bluroy email fasulle,divertitevi a riempire i loro database Discussioni Varie 1
P C# Salvare una colonna del DataGridView XML 0
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
M Leggere in un report il valore di una casella combinata di una maschera Database 0
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
S [VB.NET]: Coordinate immagini dentro una PictureBox Visual Basic 0
I stampare una stringa echo PHP 2
MarcoGrazia Riprendere una sessione interrotta PHP 0
L Rendere una parte trasparente Photoshop 3
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
K Visualizzare del html responsive in una Webview Sviluppo app per Android 0
otto9due Ordinare option di una select Javascript 5
N Come si crea una variabile dinamica da incrementare? Javascript 1
L Eliminazione di una pagina dalla gallery SEO e Posizionamento 0
otto9due Proteggere una cartella e file con password tramite .htaccess e .htpasswd Web Server 0
L Riempimento di una tabella al click di un bottone Javascript 1
R Variabile non risconosciuta dentro una funzione PHP 1
C ACCESS Aprire maschera se valore non presente in una combo MS Access 7
A media degli elementi estratti da una query MySQL 0
spider81man Eliminare primo ed ultimo carattere di una colonna MySQL 0
pacemattia408 disattivazione di una function Javascript 4
G Eliminare l'effetto refresh di una pagina internet PHP 8
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
M Select Option dentro una Table jQuery 2
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
E Scrivere una data corrente in un pdf PHP 1
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
I Assegnare dati fetch request ad una variabile globale Javascript 0
Shyson Puntare ad una sotto directory WordPress 3
Stex1967 Salvare una immagine che si trova su porta TCP 8080 di altro sito PHP 7
S Selezionare ultimo record di una sotto query MySQL 27
V Query per una somma PHP 2
L Mysql: Nascondere le pagine dopo una ricerca PHP 1

Discussioni simili