Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Caricare combo a catena

    Ciao, girando nel forum credo di aver trovato la risposta ai miei problemi (purtroppo non come volevo) ma vi interpello ugualmente sperando in qualcosa di diverso.

    Io ho una pagina asp con dei campi, tra cui 3 combo:

    1 - COMBO AREA
    2 - COMBO PROJECT
    3 - COMBO APPLICATION

    Quando seleziono una voce dall'Area devo caricare i relativi progetti dopodichè selezionando un progetto devo caricare le applicazioni correlate.
    Avevo pensato di utlizzare un codice javascript con evento onclik ma mi è parso di capire che dovrei ricare la pagina per riempire le altre combo con i valori corretti (in quanto devo far eseguire del codice asp).
    Ho pensato di usare anche un semplice link accanto alla combo, cioè seleziono una voce dalla combo AREA e poi clicco su "mostra progetti" ma anche in questo caso dovrei ricare la pagina.
    Giusto?

    Quindi per fare ciò che vorrei non ho altra soluzione che ricare la pagina in cui sono facendo così eseguire il codice asp che mi carica le combo correttamente?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Stai cercando il Remote Scripting

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367

    Re: Caricare combo a catena

    Originariamente inviato da Surrender79
    Quindi per fare ciò che vorrei non ho altra soluzione che ricare la pagina in cui sono facendo così eseguire il codice asp che mi carica le combo correttamente?
    Ciao Surrender79 ,

    puoi farlo senza ricaricare la pagina in cui sei... basta che carichi un'altra pagina in una popup (o popunder) o in frame (magari nascosto) e modifichi le combo lato client.
    Può bastarti come spunto?

  4. #4

    Re: Re: Caricare combo a catena

    puoi farlo senza ricaricare la pagina in cui sei... basta che carichi un'altra pagina in una popup (o popunder) o in frame (magari nascosto) e modifichi le combo lato client.
    Può bastarti come spunto?
    Purtroppo non posso usare i frame. Cosa intendi per caricare un'altra pagina in una popup?

    Scusa ma non sono molto pratica (infatti non so nemmeno cos'è un popunder, è la prima volta che lo sento) :quipy:

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367

    Re: Re: Re: Caricare combo a catena

    Originariamente inviato da Surrender79
    Purtroppo non posso usare i frame. Cosa intendi per caricare un'altra pagina in una popup?

    Scusa ma non sono molto pratica (infatti non so nemmeno cos'è un popunder, è la prima volta che lo sento) :quipy:
    un popunder è come un popup... solo che invece di essere up è under :gren: lo apri in un punto non visibile dello schermo (per esempio con top=3000).
    Nella pagina che contiene le combo metti delle funzioni per manipolarle... all'onchange di una combo fai aprire la popunder passando in querystring il valore selezionato... in asp carichi i dati per l'altra combo e fai dei response.write di codice javascript che richiama le funzioni per manipolare le combo...
    lo so che mi spiego male... ti mando un messaggio privato con l'indirizzo di un sito che ho fatto che usa questo sistema.

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Azz! Non posso mandarti messaggi privati! Beh...

    adesso ti preparo un esempio...

  7. #7
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ekkime qua... sono stato un po' indaffarato...

    mettiamo che il db sia un mdb di access. Ci sono tre tabelle
    tblArea
    areaId
    areaNome

    tblProject
    projectId
    projectNome
    projectRifAreaId

    tblApplication
    applicationId
    applicationNome
    applicationRifProjectId

    la pagina con le tre combo
    codice:
    <%@ Language=VBScript %>
    <%
    strAccessDB = "dbTest.mdb"
    Set Conn = Server.CreateObject("ADODB.Connection")
    strCon = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(strAccessDB)
    Conn.Open strCon
    
    query = "SELECT * FROM tblArea"
    Set rs = Server.CreateObject("ADODB.RecordSet")
    rs.Open query,Conn,3,3
    %>
    <HTML>
    <HEAD>
    <script language="javascript">
    function SvuotaCombo(nomeCombo){
    	ff = document.NomeForm
    	cc = ff.elements[nomeCombo].options
    	for(i=(cc.length-1);i>=0;i--)
    		cc[i]=null
    }
    function AggiungiOption(nomeCombo,testo,valore){
    	ff = document.NomeForm
    	cc = ff.elements[nomeCombo].options
    	cc[cc.length]=new Option(testo,valore)
    }
    function ModificaOption(nomeCombo,indice,testo,valore){
    	ff = document.NomeForm
    	cc = ff.elements[nomeCombo].options
    	cc[indice].text=testo
    	cc[indice].value=valore
    }
    
    function popunder(pagina){
    	pp = window.open(pagina,'popunder','width=300,height=200,top=3000')
    	pp.blur()
    }
    
    function FiltraProject(aa){
    	valore = aa.options[aa.selectedIndex].value
    	if(valore!=''){
    		SvuotaCombo('application')
    		AggiungiOption('application','Selezionare Project','')
    		popunder('filtra.asp?IdArea='+valore)
    	}
    	else{
    		SvuotaCombo('project')
    		AggiungiOption('project','Selezionare Area','')
    		SvuotaCombo('application')
    		AggiungiOption('application','Selezionare Project','')
    	}
    }
    function FiltraApplication(pp){
    	valore = pp.options[pp.selectedIndex].value
    	if(valore!=''){
    		popunder('filtra.asp?IdProject='+valore)
    	}
    	else{
    		SvuotaCombo('application')
    		AggiungiOption('application','Selezionare Project','')
    	}
    }
    </script>
    </HEAD>
    <BODY>
    
    <form name="NomeForm">
    AREA
    
    <select name="area" onchange="FiltraProject(this);">
    	<option value="">Selezionare...</option><%
    do while not rs.EOF%>
    	<option value="<%=rs("areaId")%>"><%=rs("areaNome")%></option><%
    	rs.MoveNext
    loop%>
    </select>
    
    
    PROJECT
    
    <select name="project" onchange="FiltraApplication(this)">
    	<option value="">Selezionare Area</option>
    </select>
    
    
    APPLICATION
    
    <select name="application">
    	<option value="">Selezionare Project</option>
    </select>
    </form>
    
    </BODY>
    </HTML>
    e la pagina filtra.asp
    codice:
    <%@ Language=VBScript %>
    <%
    strAccessDB = "dbTest.mdb"
    Set Conn = Server.CreateObject("ADODB.Connection")
    strCon = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(strAccessDB)
    Conn.Open strCon
    
    idArea = Request.QueryString("idArea")
    idProject = Request.QueryString("idProject")
    if idArea<>"" then
    	query = "SELECT * FROM tblProject WHERE ProjectRifAreaId=" & idArea
    	nomeCombo = "project"
    	nomeTesto = "projectNome"
    	nomeId = "projectId"
    end if
    if idProject<>"" then
    	query = "SELECT * FROM tblApplication WHERE ApplicationRifProjectId=" & idProject
    	nomeCombo = "application"
    	nomeTesto = "applicationNome"
    	nomeId = "applicationId"
    end if
    Set rs = Server.CreateObject("ADODB.RecordSet")
    rs.Open query,Conn,3,3
    
    %>
    <HTML>
    <HEAD>
    <script language="javascript">
    if(window.opener){
    	oo = window.opener
    	nomeCombo = '<%=nomeCombo%>'
    	oo.SvuotaCombo(nomeCombo)
    	oo.AggiungiOption(nomeCombo,'Attendere prego...','')<%
    do while not rs.EOF%>
    	oo.AggiungiOption(nomeCombo,'<%=Replace(rs(nomeTesto),"'","\'")%>','<%=rs(nomeId)%>')<%
    	rs.MoveNext
    loop%>
    	oo.ModificaOption(nomeCombo,0,'Selezionare...','')
    }
    </script>
    </HEAD>
    <BODY onload="self.close()">
    </BODY>
    </HTML>
    Se servono chiarimenti chiedi pure... non arrenderti Surrender79

  8. #8
    Wow! Grazie 1000!!!!!
    Tra oggi e domani lo provo.

    Ciao grazie ancora

  9. #9

    Belloooo!!!!!!!!!!!

    Che gran bella storia!!!!! :gren:
    Funziona, ora devo solo adattarlo bene alle mie esigenze! Grazie, sei stato gentilissimo


  10. #10
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    de nada! Ciao alla prossima

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.