Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 22
  1. #11
    Mi spiace un po' riportare del codice nuovamente ma, anche io ho lo stesso problema e anche dopo aver fatto le modifiche non riesco a visualizzare nulla nella seconda select (senza le modifiche consigliate la seconda select si popola con un testo lunghissimo del tipo "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html lang="it-IT"><head> ecc.. ecc..").

    Ora riporto il codice dei 3 file:

    1) index.asp

    Codice 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">
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <
    title>AJAX e ASP Select concatenate</title>
    <
    script language="javascript">

    var 
    ricerca_pro;

    function 
    cerca()
    {
    var 
    valorecampo document.form1.regione.options[document.form1.regione.selectedIndex].value;
    // per l'oggetto nativo XMLHttpRequest
    if (window.XMLHttpRequest) {
    ricerca_pro = new XMLHttpRequest();
    ricerca_pro.onreadystatechange ricevi;
    ricerca_pro.open("GET""cercaprovince.asp?reg="+valorecampo,true);
    ricerca_pro.send(null);
    // per IE
    } else if (window.ActiveXObject) {
    ricerca_pro = new ActiveXObject("Microsoft.XMLHTTP");
    if (
    ricerca_pro) {
    ricerca_pro.onreadystatechange ricevi;
    ricerca_pro.open("GET""cercaprovince.asp?reg="+valorecampo,true);
    ricerca_pro.send();
    }
    }
    }

    function 
    ricevi() {
    var 
    strRes;
    var 
    arrValori;
    if (
    ricerca_pro.readyState == 4) {
    document.getElementById("document.form1.citta").innerHTML=ricerca_pro.responseText;
    }
    }
    </script>
    </head>
    <%
    'apro connessione e istanzio oggetti
    OpenDB(connAJAX)
    'query per la prima select
    strsql = "SELECT id,regione FROM regioni"
    rs.open strsql
    %>
    <body>
    Scegli regione:
    <form id="form1" name="form1" method="post" action="">
    <label>regione
    <select name="regione" accesskey="1" tabindex="1" onchange="cerca()">
    <option selected="selected" value=0>Scegli regione</option>
    <%
    do while not rs.eof
    %>
    <option value="<%=rs("id")%>"><%=rs("regione")%></option>
    <%
    rs.movenext
    loop
    CloseDB

    %>
    </select>
    </label>



    <label>
    citt&agrave;
    <select name="citta" id="citta" accesskey="2" tabindex="2"  >
    </select>
    </label>
    </p>


    </p>


    </p>
    </form>
    </body>
    </html> 
    2) _db.asp

    Codice PHP:

    <%
    set conn Server.CreateObject("ADODB.Connection")
    set rs Server.CreateObject("ADODB.Recordset")

    connAJAX "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" Server.MapPath("./db2.mdb")

    '---- CursorTypeEnum Values ----
    Const adOpenForwardOnly = 0
    Const adOpenKeyset = 1
    Const adOpenDynamic = 2
    Const adOpenStatic = 3

    '
    ---- CursorLocationEnum Values ----
    Const 
    adUseServer 2
    Const adUseClient 3

    '---- CommandTypeEnum Values ----

    Const adCmdUnknown = &H0008
    Const adCmdText = &H0001
    Const adCmdTable = &H0002
    Const adCmdStoredProc = &H0004
    Const adCmdFile = &H0100
    Const adCmdTableDirect = &H0200

    sub OpenDB(sConn)
    conn.open sConn
    set rs.ActiveConnection = conn
    rs.CursorType = adOpenStatic
    end sub

    sub CloseDB()
    rs.close
    conn.close
    set rs = nothing
    set conn = nothing
    end sub

    sub w(sText)
    response.write sText & vbCrLf
    end sub
    %> 
    3) cercaprovince.asp

    Codice PHP:

    <%
    'apro connessione e istanzio oggetti
    OpenDB(connAJAX)
    reg = Request.QueryString("reg")
    strsql = "SELECT citta FROM citta WHERE id_reg = " &reg& ""
    rs.open strsql
    primo = 0
    if not rs.eof then
    do while not rs.eof

    '
    compongo l'array con i risultati
    if primo = 0 then
    primo = 1
    array_citta = rs("citta")
    else
    array_citta = rs("citta") & "|" & array_citta
    end if

    rs.movenext
    loop
    response.write array_citta
    end if



    CloseDB
    %> 
    Sicuramente il problema sarà dettato dal fatto che JS non lo mastico per nulla..

    Spero di aver presto buone notizie!!

    Grazie
    cammino, cammino fumando,
    e ad ogni passo,
    attraverso il mio fumo,
    mi trovo dove non ero prima,
    sono dove prima espiravo.

  2. #12
    ..tra le altre cose, se uso negli include, il metodo "virtual" mi viene generato il seguente errore:

    Active Server Pages, ASP 0126 (0x80004005)
    Impossibile trovare il file di inclusione "./_db.asp".


    cosa che non accade se sostituisco "virtual" con "file".

    Non ne comprendo bene il motivo.
    cammino, cammino fumando,
    e ad ogni passo,
    attraverso il mio fumo,
    mi trovo dove non ero prima,
    sono dove prima espiravo.

  3. #13
    un'altra cosa ancora.. ecco il link dove si puo' vedere l'errore generato dalle due select concatenate
    >select<
    cammino, cammino fumando,
    e ad ogni passo,
    attraverso il mio fumo,
    mi trovo dove non ero prima,
    sono dove prima espiravo.

  4. #14
    Ciao

    ho lo stesso identico prblema di jackburton:
    dopo aver fatto le modifiche non riesco a visualizzare nulla nella seconda select (senza le modifiche consigliate la seconda select si popola con un testo lunghissimo del tipo "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html lang="it-IT"><head> ecc.. ecc..").
    E la prima volta che uso ajax!

    jackburton sei riuscito a risolvere?

  5. #15
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Non so se possa essere utile (è da un secolo che non uso asp). Questo è una pagina con due select concatenate, REGIONI-PROVINCE
    codice:
    <%@ Language=VBScript %>
    <%
    	option explicit
    	
    	Response.Buffer = true
    	
    	onload
    
    %>
    <!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" >
    <head>
        <title>Pagina senza titolo</title>
        <script type="text/javascript" src="../../../js/sajax.js"></script>
    
        <script language="javascript" type="text/javascript">
    // <!CDATA[
    function recupera_province(v)
    {
        var id_regione = v.value;
        if(id_regione == "")
        {
            $("div1").innerHTML = "";
            return;
        }
        
        var parametri = "id_regione=" + id_regione;
        sajax("?comando_ajax=trova_province", onload, parametri);
        function onload()
        {
            var t = this.request.responseText;
            $("div1").innerHTML = t;
        }
        
    }
    
    
    // ]]>
        </script>
    </head>
    <body>
        <table>
            <tr>
                <td>Regioni:</td>
                <td><select id="regioni" onchange="recupera_province(this);" ><%=regioni()%></select></td>
            </tr>
            <tr>
                <td>Province</td>
                <td><div id="div1"></div></td>
            </tr>
        </table>
    </body>
    </html>
    
    <%
    
    sub onload()
        dim comando_ajax
        
        comando_ajax = Request("comando_ajax")
        if(comando_ajax = "trova_province") then
            trova_province
        end if
    
    end sub
    
    sub trova_province()
        dim id_regione
        id_regione = Request("id_regione")
        response.Clear
        response.Write province(id_regione)
        response.End
    end sub
    
    function regioni()
        dim db, rs, sql
    
        set db = server.CreateObject("ADODB.Connection")
        set rs = server.CreateObject("ADODB.RECORDSET")
    
        db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dati\test\test.mdb;User Id=admin;Password=;" 
    
    
        sql = "SELECT * FROM REGIONI"
    
        rs.Open sql, db, 3, 3
        dim s
        
        s = "<option value=""""></option>"
        do while not rs.EOF
    	    s = s & "<option value=""" + rs(0) + """ >" & rs(1) & "</option>"
    	    rs.MoveNext
        loop
        regioni = s
        
        rs.Close: set rs = nothing
        db.Close: set db = nothing
    
    end function
    
    function province(id_regione)
        dim db, rs, sql, s
    
        set db = server.CreateObject("ADODB.Connection")
        set rs = server.CreateObject("ADODB.RECORDSET")
    
        db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dati\test\test.mdb;User Id=admin;Password=;" 
    
    
        sql = "SELECT * FROM Q_PROVINCIE WHERE CODICE_ISTAT_REGIONE = """ & id_regione & """"
        rs.Open sql, db, 3, 3
        's = "<select size=""" & rs.RecordCount & """ >"
        s = "<select>"
        do while not rs.EOF
    	    s = s & "<option value=""" + rs(0) + """ >" & rs(1) & "</option>"
    	    rs.MoveNext
        loop
        s = s & "</select>"
        province = s
            
        rs.Close: set rs = nothing
        db.Close: set db = nothing
    
    
    end function
    %>
    il file javascript è

    codice:
    // File JScript
    function sajax(url, onload, parameters, onerror)
    {
    	parameters = (parameters == undefined)? "" : parameters;
    	
    	//creazione oggetto per richiesta web
    	var objHTTP = getXMLHttp();
    	objHTTP.open("post", url, true);
    	objHTTP.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	objHTTP.setRequestHeader('Content-length',parameters.length);
    	objHTTP.setRequestHeader('Connection', 'close');
    
    	objHTTP.onreadystatechange = function() 
    	{ 
    		if (objHTTP.readyState == 4) 
    		{
    			if (objHTTP.status == 200 || objHTTP.status == 0)
    			{
    				this.request = objHTTP;
    				if(onload) onload.call(this);
    			}											
    			else {if(onerror && typeof(onerror) == "function") {onerror(defaultError); return;}else {defaultError(); return;}}
    		}
    	};
    
        objHTTP.send(parameters);
        
    
        function getXMLHttp() 
        {
    	    var xmlhttp = null;
        	
    	    if(window.XMLHttpRequest) 
    	    {
    		    xmlhttp = new XMLHttpRequest(); // Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera, Internet Explorer 7
    	    } 
    	    else if(window.ActiveXObject) 
    	    {
    		    try
    		    {
    			    xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); // Internet Explorer 6 
    		    } 
    		    catch(e) 
    		    {
    			    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer 4,5 
    		    }
    		    } 
    	    else 
    	    {
    		    xmlhttp = null;
    	    }
    	    return xmlhttp;
        };
    
    	function defaultError()
    	{
    		alert("ERRORE NELLA TRASMISSIONE DATI!");
    	};
    }
    
    //al posto di mettere document.getElementById("div1"), mettere $("div1")
    //da prototype.js
    function $() {
      var elements = new Array();
    
      for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];
        if (typeof element == 'string')
          element = document.getElementById(element);
    
        if (arguments.length == 1)
          return element;
    
        elements.push(element);
      }
    
      return elements;
    }
    Pietro

  6. #16

    sciabolata... non và!!

    Ciao Pietro,

    ho provato anche il tuo script ma non ottengo il risultato voluto.
    La pagina si carica regolarmente ma quando seleziono la provincia mi viene restotuito un errore stranissimo:

    si apre un msgBox che riporta: ERRORE NELLA TRNSAZIONE DATI.

    Mi viene il dubbio che per usare Ajax debba configurare qualche parametro del Browser.

  7. #17
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: sciabolata... non và!!

    Originariamente inviato da Marvellous
    Ciao Pietro,

    ho provato anche il tuo script ma non ottengo il risultato voluto.
    La pagina si carica regolarmente ma quando seleziono la provincia mi viene restotuito un errore stranissimo:

    si apre un msgBox che riporta: ERRORE NELLA TRNSAZIONE DATI.

    Mi viene il dubbio che per usare Ajax debba configurare qualche parametro del Browser.
    gentilissimo Marvellous, il messaggio che ottieni è dovuto al fatto che semplicemente la pagina asp va in errore.
    Non è assolutamente necessario configurare in alcun modo il browser.
    Detto questo, e ricordando che purtroppo non uso più asp e l'ho quasi dimenticato, ti propongo una variante della funzione province dove simulo un errore sbagliando volutamente il nome di un campo
    codice:
    function province(id_regione)
        On error resume next
        
        dim db, rs, sql, s
    
        set db = server.CreateObject("ADODB.Connection")
        set rs = server.CreateObject("ADODB.RECORDSET")
    
        db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dati\test\test.mdb;User Id=admin;Password=;" 
    
    
        sql = "SELECT * FROM Q_PROVINCIE WHERE _CODICE_ISTAT_REGIONE = """ & id_regione & """"
        rs.Open sql, db, 3, 3
        if Err.number <> 0 then
            province = "Errore: " & err.number & "
    " & err.Description
            err.Clear
            exit function
        end if
        
        
        's = "<select size=""" & rs.RecordCount & """ >"
        s = "<select>"
        do while not rs.EOF
    	    s = s & "<option value=""" + rs(0) + """ >" & rs(1) & "</option>"
    	    rs.MoveNext
        loop
        s = s & "</select>"
        province = s
            
        rs.Close: set rs = nothing
        db.Close: set db = nothing
    
        if Err.number <> 0 then
            province = "Errore: " & err.number & "
    " & err.Description
            err.Clear
            exit function
        end if
        
    end function
    il campo _CODICE_ISTAT_REGIONE non esiste perciò ottengo un messaggio di descrizione errore un poco più dettagliato.
    Errore: -2147217900
    Errore di sintassi nell'espressione della query '_CODICE_ISTAT_REGIONE = "01"'.

    Fammi sapere perchè mi piacerebbe che funzionasse pure in asp e non solo in php
    Pietro

  8. #18
    Ciao Pietro

    io con ASP invece me la cavo pittosto bene ma è la prima volta che provo a usare ajax.
    Non c'è un esempio trovato in rete che riesco a far funzionare, chissa che con il tuo script non rompa questa maledizione.

    dunque lo script ora mi restituisce l'errore seguente:

    Errore: -2147217900
    Errore di sintassi nell'espressione della query '_CODICE_ISTAT_REGIONE = "1"'.

  9. #19
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    beh, se conosci asp, sei a posto

    fatti una pagina asp indipendente, con una funzione province(id_regione) e che ti stampi l'elenco delle province per la data regione, poi sostituisci il codice
    Pietro

  10. #20

    Ci sono riuscito

    Ci sono riuscito
    Ho corretto il tuo script e ora funziona alla grande!!!


    Grazie mille per l'aiuto, ora anche io potrò dire che sono un super-esperto di Ajax


    Ricordo ancora quando abbiamo perso la allora coppa dei campioni: Milan- Ajax: 0 -1
    Gool di Cluivert




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.