Problema con select dinamica

tivovi74

Utente Attivo
31 Gen 2012
58
1
8
Ciao ragazzi, ho un problema con una select dinamica di un form che non carica i dati in un'altra select.
Prima di riportarla nel pagina, avevo fatto una prova caricando il form in una pagina senza altro codice e funzionava.....
Il problema potrebbe essere che nella pagina ci sono degli altri script per caricare dei slidehow, non vorrei che ci fosse qualche conflitto, solo che la mia esperienza è prossima allo 0 e quindi non riesco a capirlo.......
Mi date un occhio al codice?
posto tutto......
Grazie.

questo è lo script per la select dinamica
HTML:
<script type="text/javascript">
    var Vendita = new Array();
    Vendita[0] = "da 0 ad € 150.000";
    Vendita[1] = "da € 150.000 ad € 250.000";
    Vendita[2] = "da € 250.000 ad € 350.000";
    Vendita[3] = "da € 350.000 ad € 450.000";
	Vendita[4] = "oltre € 450.000";
    
    var Locazione = new Array();
    Locazione[0] = "da 0 ad € 500";
    Locazione[1] = "da € 500 ad € 1.000";
    Locazione[2] = "da € 1.000 a 1.500";
    Locazione[3] = "da € 1.500 ad € 2.000";
	Locazione[4] = "oltre € 2.000";
    
    function getSelected(select) {
        // recupero valore selezionato
        return select.options[select.selectedIndex].value;
    }
    
    function getElement(id)  {
        // recupero l'elemento
        return document.getElementById(id);
    }
    function popolaSelect(select,opt) {
        // scelgo l'array
        switch (opt) {
            case '1':
                var arr = Vendita;
                break;
            case '2':
                var arr = Locazione;
                break;
            default:
                return;
                break;
        }
        // azzero le option            
        select.options.length = 1;
        // creo le option in base agli elementi degli array       
        for(var i=0; i<arr.length; i++) {                              
            // creo la option
            select.options[select.options.length] = new Option(arr[i],i);        
        }
    }
</script>

questo, invece, è il form

HTML:
<form class="tabellaformricerca" id="formricerca" name="formricerca" action="http://www.gabettibolognamazzini.it/risultatiricercaimmobili.php" method="post">
      <table width="500" border="0" cellspacing="1">
        <tr>
          <td width="125"><label for="contratto">Tipo contratto:</label></td>
<td width="125"><select name="contratto" id="contratto" onchange="popolaSelect(getElement('range'),getSelected(this))">
        <option value="0" selected="selected">seleziona</option>
        <option value="Vendita">vendita</option>
        <option value="Locazione">locazione</option>
    </select></td>
          <td width="125"><label for="zona">Zona:</label></td>
          <td width="125"><select name="zona" size="1" id="zona" tabindex="2" title="zona">
            <option>seleziona</option>
            &nbsp;
          </select></td>
        </tr>
        <tr>
          <td><label for="tipologia">Tipologia:</label></td>
          <td><select name="tipologia" size="1" id="tipologia" tabindex="3" title="tipologia">
            <option selected="selected">seleziona</option>
            <option value="abitazione">abitazione</option>
            <option value="ufficio">ufficio</option>
            <option value="negozio">negozio</option>
            <option value="magazzino">magazzino</option>
            <option value="box">box</option>
          </select></td>
          <td><label for="mq">Mq min:</label></td>
          <td><select name="mq" size="1" id="mq" tabindex="4" title="mq">
            <option>seleziona</option>
            <option value="0">0</option>
            <option value="30">30</option>
            <option value="50">50</option>
            <option value="75">75</option>
            <option value="100">100</option>
            <option value="125">125</option>
            <option value="150">150</option>
          </select></td>
        </tr>
        <tr>
          <td><label for="range">Prezzo</label></td>
          <td><select name="range" size="1" id="range" tabindex="5">
          </select></td>
          <td></td>
          <td><input name="submit" type="submit" id="submit" tabindex="6" title="submit" value="cerca" /></td>
        </tr>
      </table>
    </form>

e questo è l'altro script per gli slideshow
HTML:
<script type="text/javascript">
window.onload=function(){
sfoglia();
mostra();
}
</script>

Grazie mille.
 
Ciao,

non ci sono confilitti, il tuo form è errato, è richiesto un value con valore 1 e l'altro con valore 2 nella select.

Dove 1 fa riferimento all'array Vendita e 2 all'array Locazione.

La select range non può essere popolata con i valori richiesti.

O cambi i value degli option della select contratto con 1 e 2 o cambi il valore degli switch (case).


Codice:
<select name="contratto" id="contratto" onchange="popolaSelect(getElement('range'),getSelected(this))">
<option value="0" selected="selected">seleziona</option>
<option value="1">vendita</option>
<option value="2">locazione</option>
</select>

Lasciando il form come è adesso:

Codice:
        switch (opt) {
            case 'Vendita':
                var arr = Vendita;
                break;
            case 'Locazione':
                var arr = Locazione;
                break;
            default:
                return;
                break;
        }

Valeria.
 
Grazie Valeria, ti devo già un caffè per gli slideshow, ora anche per questo, mi sa che fra un po' ti dovrò invitare a cena per ringraziarti...
Funziona perfettamente.....
Grazie ancora.
 

Discussioni simili