Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di spila
    Registrato dal
    Jan 2008
    Messaggi
    38

    Popolare un combo da una condizione su un'altro con dreamweaver

    premetto che uso dreamweaver e di solito l'operazione di compilare un combo dispetto al valore selezionato su un'altro mi è sempre riuscita ....... ma i valori erano sempre presenti sulla stessa tabella access.

    ho risistemato il bd lavorando con indici cosa migliore per non appesantirlo ed ora non riesco più a farlo funzionare .......

    VI SPIEGO COSA DEVO FARE .

    TRABELLE DB :

    Nome db : Archivio_Storico
    tabelle :
    -------------------------------------------------------------
    1. TipoBranca
    ID - Branca
    1 - L/C
    2 - E/G
    --------------------------------------------------------------
    2. TipoUnita
    IDUnita - Unita - ID_Branca
    1 - reparto - 1
    2 - reparto1 - 1
    3 - reparto3 - 2
    --------------------------------------------------------------
    questa è la mia pagina io devo selezionare il conmo branche e di conseguenza si deve popolare il relativo combo unità
    ma non funziona

    GRAZIE PER L'AIUTO

    codice:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    
    <%
    Dim Anno
    Dim Anno_numRows
    
    Set Anno = Server.CreateObject("ADODB.Recordset")
    Anno.ActiveConnection = MM_ArchivioStorico_STRING
    Anno.Source = "SELECT *  FROM Anno  ORDER BY Anno ASC"
    Anno.CursorType = 0
    Anno.CursorLocation = 2
    Anno.LockType = 1
    Anno.Open()
    
    Anno_numRows = 0
    %>
    <%
    Dim Branca
    Dim Branca_numRows
    
    Set Branca = Server.CreateObject("ADODB.Recordset")
    Branca.ActiveConnection = MM_ArchivioStorico_STRING
    Branca.Source = "SELECT * FROM TipoBranca ORDER BY ID ASC"
    Branca.CursorType = 0
    Branca.CursorLocation = 2
    Branca.LockType = 1
    Branca.Open()
    
    Branca_numRows = 0
    %>
    <%
    Dim Unita__VarBranca
    Unita__VarBranca = "1"
    If (Request.QueryString("Branca")    <> "") Then 
      Unita__VarBranca = Request.QueryString("Branca")   
    End If
    %>
    <%
    Dim Unita
    Dim Unita_numRows
    
    Set Unita = Server.CreateObject("ADODB.Recordset")
    Unita.ActiveConnection = MM_ArchivioStorico_STRING
    Unita.Source = "SELECT TipoUnita.Unita  FROM TipoBranca INNER JOIN TipoUnita ON TipoBranca.ID=TipoUnita.ID_Branca  WHERE (((TipoUnita.ID_Branca)=" + Replace(Unita__VarBranca, "'", "''") + "));"
    Unita.CursorType = 0
    Unita.CursorLocation = 2
    Unita.LockType = 1
    Unita.Open()
    
    Unita_numRows = 0
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Documento senza titolo</title>
    <style type="text/css">
    <!--
    .Stile3 {
    	color: #FFFFFF;
    	font-weight: bold;
    	font-size: 24px;
    }
    .Stile4 {color: #FFFFFF}
    .Stile6 {color: #FFFFFF; font-size: 12px; }
    -->
    </style>
    </head>
    
    <body>
    
    
    </p>
    
    
    </p>
    <table width="430" height="248" border="1" align="center">
      <tr>
        <td width="420" height="228" bgcolor="#AA060D"><form action="" method="post" name="Ins_campi" id="Ins_campi">
          <table width="315" border="0" align="center">
            <tr>
              <td colspan="3"><div align="center" class="Stile3">Inserimento campi </div></td>
            </tr>
            <tr>
              <td width="110"><div align="right"><span class="Stile4">Anno : </span></div></td>
              <td colspan="2"><span class="Stile4">
                <select name="Anno" id="Anno">
                  <%
    While (NOT Anno.EOF)
    %>
                  <option value="<%=(Anno.Fields.Item("ID_anno").Value)%>"><%=(Anno.Fields.Item("Anno").Value)%></option>
                  <%
      Anno.MoveNext()
    Wend
    If (Anno.CursorType > 0) Then
      Anno.MoveFirst
    Else
      Anno.Requery
    End If
    %>
                </select>
              </span></td>
            </tr>
            <tr>
              <td><div align="right"><span class="Stile4">Branca : </span></div></td>
              <td colspan="2"><span class="Stile4">
                <select name="Branca" id="Branca" onChange="submit()">
                  <%
    While (NOT Branca.EOF)
    			  ' ########IN QUESTO MODI LA SELEZIONE RIMANE NEL COMBO  #######
    			%>          
    			<option value="<%=(Branca.Fields.Item("ID").Value)%>"
    			<%if Branca.Fields.Item("Branca").Value = Unita__Var then%> selected="selected"<%end if%>
    			><%=(Branca.Fields.Item("Branca").Value)%></option>
    			<%
    			'  ##### FINE ######
      Branca.MoveNext()
    Wend
    If (Branca.CursorType > 0) Then
      Branca.MoveFirst
    Else
      Branca.Requery
    End If
    %>
                  
                  
                </select>
              </span></td>
            </tr>
            <tr>
              <td><div align="right"><span class="Stile4">Unit&agrave; :</span></div></td>
              <td colspan="2"><span class="Stile4">
                <select name="Unita" id="Unita">
                  <%
    While (NOT Unita.EOF)
    %>
                  <option value="<%=(Unita.Fields.Item("Unita").Value)%>"><%=(Unita.Fields.Item("Unita").Value)%></option>
                  <%
      Unita.MoveNext()
    Wend
    If (Unita.CursorType > 0) Then
      Unita.MoveFirst
    Else
      Unita.Requery
    End If
    %>
                </select>
              </span></td>
            </tr>
            <tr>
              <td><div align="right"><span class="Stile4">Tipo Campo : </span></div></td>
              <td><span class="Stile4">
                <select name="TipoCampo" id="TipoCampo">
                </select>
              </span></td>
              <td></td>
            </tr>
            <tr>
              <td><div align="right"><span class="Stile4">Luogo : </span></div></td>
              <td width="89"><span class="Stile4">
                <select name="Luogo" id="Luogo">
                </select>
              </span></td>
              <td width="102"></td>
            </tr>
            <tr>
              <td><div align="right"><span class="Stile4">Sq. Vincitrice </span></div></td>
              <td colspan="2"><span class="Stile4">
              <select name="SQ" id="SQ">
              </select>
    </span></td>
            </tr>
            <tr>
              <td><div align="right"></div></td>
              <td colspan="2"><span class="Stile4">
              </span></td>
            </tr>
            <tr>
              <td colspan="3"><div align="center">
                <input type="submit" name="Submit" value="Inserisci">
              </div></td>
            </tr>
          </table>
        </form>
        </td>
      </tr>
    </table>
    
    
    </p>
    
    
    </p>
    
    
    </p>
    </body>
    </html>
    <%
    Anno.Close()
    Set Anno = Nothing
    %>
    <%
    Branca.Close()
    Set Branca = Nothing
    %>
    <%
    Unita.Close()
    Set Unita = Nothing
    %>


    ho creato il mio recordset con le JOIN relative alle due tabelle e al posto del valore mumerico ho uinserito una varBranche che varia nel combo branche

    codice:
    <%
    Dim Unita__VarBranca
    Unita__VarBranca = "1"
    If (Request.QueryString("Branca")    <> "") Then 
    Unita__VarBranca = Request.QueryString("Branca")   
    End If
    %>
    ed ha riferimento alla sua select :

    codice:
    Set Unita = Server.CreateObject("ADODB.Recordset")
    Unita.ActiveConnection = MM_ArchivioStorico_STRING
    Unita.Source = "SELECT TipoUnita.Unita  FROM TipoBranca INNER JOIN TipoUnita ON TipoBranca.ID=TipoUnita.ID_Branca  WHERE (((TipoUnita.ID_Branca)=" + Replace(Unita__VarBranca, "'", "''") + "));"
    Unita.CursorType = 0
    Unita.CursorLocation = 2
    Unita.LockType = 1
    Unita.Open()
    ma non va ???????

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253
    hai provato a mettere in mezzo javascript? è giusto il fatto di farti la join tra le due, ma se hai due combobox che devono popolarsi l'una in base alla scelta sull'altra credo tu debba mettere in gioco javascript oppure far ricaricare la pagina a ogni cambio selezione...

    spero di non aver capito male

  3. #3
    Utente di HTML.it L'avatar di spila
    Registrato dal
    Jan 2008
    Messaggi
    38
    la pagina si ricarica onChange del combo:

    Codice PHP:
    <select name="Branca" id="Branca" onChange="submit()"
    il problema è che la var non funziona mi prende praticamente solo il valore 1

    Codice PHP:
    <% Dim Unita__VarBranca Unita__VarBranca "1" If (Request.QueryString("Branca")    <> ""Then    Unita__VarBranca Request.QueryString("Branca")    End If %> 

    se cambio 1 in 2 la selezione del combo cambia prendendo i valori del combo 2 ma la selezione del combo ricerca non viene considerata .... non considera la variabile praticamente .

    non è che è sbagliata questa ? Request.QueryString("Branca")

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253
    scusa ma se fai il submit, quindi ricarichi, non dovrebbe essere Request.form?

  5. #5
    Utente di HTML.it L'avatar di spila
    Registrato dal
    Jan 2008
    Messaggi
    38
    request.form ora va

    ma non mi rimane selezionata nel combo la scelta che faccio

    invece che submit() e ricaricare tutta la pagina come faccio a aggiornare solo il bombo interessato ?

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253
    premesso che forse è il caso che invece di fare il submit ad ogni selezione, forse sarebbe il caso che tu condizionassi tutto quanto via javascript, per farle restare selezionate facendo il procedimento che fai ora, cioè il submit, penso che non appena tu hai memorizzato la prima all'interno della combo devi

    A) scorrere tutti i record che popolano la prima combo e non appena incontri un record = request.form("primacombo") che ti sei valorizzato all'inizio imposti il tag option con l'attributo selected

    B) scorrere tutti i record che popolano la seconda combo e non appena incontri quel record che è il corrispettivo di request.form("primacombo") anche in questo caso imposti il tag option con l'attributo selected

    Ripeto che però, forse se metti in mezzo un po' di javascript forse fai 1 cosa 1 po più pulita e veloce come esecuzione.

    i valori delle due combo hanno degli indici giusto?

  7. #7
    Utente di HTML.it L'avatar di spila
    Registrato dal
    Jan 2008
    Messaggi
    38
    si hanno gli indici

    se mi dai indicazioni per inserire un pò di java per me va bene

    è che non sono molto pratico di java mi servirebbe una mano

    grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253
    non so se parlandone qui andiamo OT però...cmq, il valore della seconda combo è necessariamente subordinato alla selezione della prima??

    Oppure può accadere anche il contrario?

  9. #9
    Utente di HTML.it L'avatar di spila
    Registrato dal
    Jan 2008
    Messaggi
    38
    il secondo dipende sempre dal primo .

    qualcuno mi ha indicato ajax ma non so da dove cominciare ....

    popolare la seconda combo con Ajax: cioè la seconda combo è in un'altra pagina (ASP e dinamica) e viene richiamata dalla 1 combo con una procedura AJAX XMLHttpRequest.

  10. #10
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    La costruzione ed il funzionamento delle select dinamiche ( così si chiamano... ) è un argomento trattato decine di volte su questo forum.

    E' sufficiente fare una ricerca su questo forum, ma anche su google, e troverai materiale utile a risolvere il problema:

    http://forum.html.it/forum/search.ph...by=&sortorder=

    http://www.google.it/search?hl=it&q=...n+Google&meta=
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

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.