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: 282

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
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 6
S Selezionare ultimo record di una sotto query MySQL 26
V Query per una somma PHP 2
L Mysql: Nascondere le pagine dopo una ricerca PHP 1
L salvare una immagine elaborata in canvas Javascript 1
L salvare una immagine elaborata in canvas Javascript 1
W visualizzare solo file html e sottocartelle di una cartella PHP 1
W Elenco dei link del file presenti in una cartella PHP 2
R Mettere in sicurezza una comunicazione .NET Framework 0
L Creare una forma geometrica Photoshop 1
G Casella combinata in una query MS Access 4
voldemort Cos'è una SCRL? Che tipo di società è?? Leggi, Normative e Fisco 1
F Funzione Glob - ricerca file contenente una parola PHP 1
felino [EXCEL] Conteggio ore all'interno di una settimana Windows e Software 7
Y cambiare sfondo di una pagina Javascript 1
Y Vorrei selezionare un colore di sfondo per una pagina web Javascript 0
S Apertura in una nuova pagina PHP 6
S impostare un testo e una img nella stessa riga con jsPDF Javascript 0
F Prendere contenuti da una tabella PHP 4
B Stampare una porzione della pagina PHP 0
D assegnare risultato di una jquery ad una text Javascript 2
Cosina Cancellare una specifica email da un elenco in un file txt PHP 3
A Dare l'accesso ad una pagina solo ad un utente specifico PHP 0
G Inserire una scritta Java 1
Samuele Ronzani Sposta dati in una tabella eliminandolo MySQL 6
Cosina Mostrare immagini da una cartella, ma solo un numero definito PHP 12
Alex_70 Cerca testo all'interno di una stringa PHP 5
F Andare a capo all'interno di una tabella WordPress 4

Discussioni simili