Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Come mantenere selezionata l'option di una select?

    Salve a tutti, sto utilizzando un codice trovato sul web delle città province comuni dove la select si aggiorna in relazione alle altre. L'ho personalizzata secondo le mie esigenze, ma manca di un elemento: quando avviene il refresh della pagina, non vengono memorizzate le opzioni selezionate in precedenza. Cosa mi consigliate di fare?

    Vi riporto il codice:

    Questo è il form:
    codice:
    <table width="800" border="0" cellspacing="5" cellpadding="0" bgcolor="#ebebeb">
            <tr>
              <td colspan="3"></td>
            </tr>
            <tr>
              <td width="216"><select name="contratto" class="selectImm" id="contratto">
                  <?php echo $opt->ShowContratto(); ?>
                </select></td>
              <td width="200"><select name="tipologia" class="selectImm" id="tipologia">
                  <?php echo $opt->ShowTipologia(); ?>
                </select></td>
              <td width="257"><select name="immobile" class="selectImm" id="immobile">
                  <option >Tipo d'immobile</option>
                </select></td>
            </tr>
            <tr>
              <td><select name="province" class="selectImm" id="province">
                  <?php echo $opt->ShowProvince(); ?>
                </select></td>
              <td><select name="comuni" class="selectImm" id="comuni">
                  <option>Comune</option>
                </select></td>
              <td><select name="quartieri" class="selectImm" id="quartieri">
                  <option>Quartiere</option>
                </select></td>
            </tr>
    </table>
    Questo è il js, credo che qui debba richiamare i dati, forse in sessione?
    codice:
    $(document).ready(function(){
    	var sceglicomune = '<option>Comune</option>';
    	var scegliquartiere = '<option>Quariere</option>';
    	var attendere = '<option>Attendere...</option>';
    		
    	$("select#comuni").html(sceglicomune);
    	$("select#comuni").attr("disabled", "disabled");
    	$("select#quartieri").html(scegliquartiere);
    	$("select#quartieri").attr("disabled", "disabled");
    	
    		
    	$("select#province").change(function(){
    		var provincia = $("select#province option:selected").attr('value');
    		$("select#comuni").html(attendere);
    		$("select#comuni").attr("disabled", "disabled");
    		$("select#quartieri").html(scegliquartiere);
    		$("select#quartieri").attr("disabled", "disabled");
    		
    		$.post("select.php", {id_prov:provincia}, function(data){
    			$("select#comuni").removeAttr("disabled"); 
    			$("select#comuni").html(data);	
    		});
    	});	
    		
    	$("select#comuni").change(function(){
    		$("select#quartieri").attr("disabled", "disabled");
    		$("select#quartieri").html(attendere);
    		var comune = $("select#comuni option:selected").attr('value');
    		$.post("select.php", {id_com:comune}, function(data){
    			$("select#quartieri").removeAttr("disabled");
    			$("select#quartieri").html(data);	
    		});
    	});
    	
    	
    	
    	$("#bottone").click(function(){
    		
    		var contratto = $("select#contratto option:selected").val();
    		var provincia = $("select#province option:selected").val();   
    		var comune = $("select#comuni option:selected").val();
    
    		
    		if(contratto>0 && provincia>0 && comune>0)
    		{
    			$.post("dati.php", { contratto: contratto, provincia: provincia, comune: comune, quartiere: quartiere}, 
    			function(msg){ $("#risultato").html(msg); });
    		}
    		else {
    		alert("Selezionare i campi obbligatori *");}
    	
    	}); 
    		
    });
    Questa è la select.class:
    codice:
    <?php
    class SelectList
    {
    	protected $conn;
    		public function __construct()
    		{
    			$this->DbConnect();
    		}
    		protected function DbConnect()
    		{
    			include "../include/db_config.php";
    			$this->conn = mysql_connect($host,$user,$password) OR die("Impossibile connettersi al database");
    			mysql_select_db($db,$this->conn) OR die("Impossibile selezionare il database $db");
    			return TRUE;
    		}
    		
    		public function ShowProvince()
    		{
    			$sql = "SELECT * FROM provincia";
    			$res = mysql_query($sql,$this->conn);
    			$provincia = '<option>Provincia</option>';
    				while($row = mysql_fetch_array($res))
    				{
    					$provincia .= '<option value="' . $row['id_prov'] . '">' . utf8_encode($row['provincia']) . '</option>';
    				}
    			return $provincia;
    		}
    		
    		public function ShowComuni()
    		{
    			$sql = "SELECT * FROM comune WHERE id_prov=$_POST[id_prov]";
    			$res = mysql_query($sql,$this->conn);
    			$comune = '<option>seleziona...</option>';
    				while($row = mysql_fetch_array($res))
    				{
    					$comune .= '<option value="' . $row['id_com'] . '">' . utf8_encode($row['comune']) . '</option>';
    				}
    			return $comune;
    		}
    		
    		public function ShowQuartieri()
    		{
    			$sql = "SELECT * FROM quartiere WHERE id_com=$_POST[id_com]";
    			$res = mysql_query($sql,$this->conn);
    			$quartiere = '<option>seleziona...</option>';
    				while($row = mysql_fetch_array($res))
    				{
    					$quartiere .= '<option value="' . $row['id_quar'] . '">' .utf8_encode($row['quartiere']) . '</option>';
    				}
    			return $quartiere;
    		}
    }
    ?>
    codice:
    if(isset($_POST['id_prov']))
    {
    	echo $opt->ShowComuni();
    	die;
    }
    
    if(isset($_POST['id_com']))
    {
    	echo $opt->ShowQuartieri();
    	die;
    }

  2. #2
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  3. #3
    qualche aiuto più concreto?

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma perché c'è il refresh visto che usi ajax?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    infatti, ho provato anche ad inserire delle sessioni, ma giustamente non essendoci nessun refresh non succede nulla, intendevo dire quando viene premuto il pulsante

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Mi sembra tu abbia troppa confusione e poca conoscenza di js e jquery e in questi casi è molto difficile prima dici:
    quando avviene il refresh della pagina, non vengono memorizzate le opzioni selezionate in precedenza.
    quando ti chiedo:
    Ma perché c'è il refresh visto che usi ajax?

    Tu rispondi
    infatti, ho provato anche ad inserire delle sessioni, ma giustamente non essendoci nessun refresh non succede nulla, intendevo dire quando viene premuto il pulsante
    che non centra molto con la domanda, pertanto alla domanda
    Cosa mi consigliate di fare?
    Mi viene da risponderti sinceramente rinuncia ad usare ajax js/jquery e eseguila in maniera "tradizionale" con il ricarico della pagina usando la querystring ?citta=xxxx&provincia=yyyy, oppure studiati js/jquery e integra i cookie come t'ha consigliato Carlo allo script jquery, trovare qualcuno che ti faccia l'integrazione nel codice la vedo dura ma non impossibile se non hai fretta prova ad attendere
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    scusami ma il forum serve proprio a confrontarsi, cercare di capire, approfondire aspetti, cercare consigli. Se mi permetti ti consiglierei di perdere meno tempo a giudicare e dare più consigli, come quello di attendere. Se fossimo tutti capaci tutti i forum non avrebbero senso di esistere.
    Grazie in ogni caso del tuo intervento.

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da Andrewa
    scusami ma il forum serve proprio a confrontarsi, cercare di capire, approfondire aspetti, cercare consigli.
    Un consiglio ti è stato dato ma non l'hai gradito, poi ad una mia domanda hai risposto vagamente senza senso (è tutto scritto basta rileggere)
    Se mi permetti ti consiglierei di perdere meno tempo a giudicare e dare più consigli, come quello di attendere.
    Se prima di scrivere facevi una ricerca sul sottoscritto trovavi una miriade di post con codice o con esempi
    Se fossimo tutti capaci tutti i forum non avrebbero senso di esistere.
    Un conto e chiedere un aiuto un indicazione, altra cosa è chiedere il codice pronto (nel tuo caso sembra più la seconda, ma forse mi sbaglio)
    Grazie in ogni caso del tuo intervento.
    Di niente, preciso che i miei sono comunque solo consigli (forse sbagliati è molto soggettivo) che se non gradi basta non applicare, non c'è bisogno di replicare per forza.
    In tutti i casi ti auguro di risolvere il tuo problema.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.