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

    [ajax] sostituire iframe

    Salve a tutti,
    ho una pagina asp con un form:
    <form action="descrEvento.asp" target="descrizione"><input type="text" name="data">
    sotto, ho un <iframe name="descrizione">
    al submit del form il valore data viene passato all'iframe descrizione, dove ho questo codice asp:

    codice:
    <%
    set conn = server.createobject("ADODB.Connection")
    conn.open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = "& server.MapPath(":D"))
    
    Session.LCID = 1040
    
    // se non passiamo nessun valore parte dalla data odierna
    If Request("data") ="" then
      data = Date()
    else
      data = CDate(Request("data"))
    end if
    
    mese = Month(data)
    anno = Year(data)
    giorno = Day(data)
    
    oDt = mese&"/"&giorno&"/"&anno
    
    set recset = conn.execute ("select * from eventi where #"&oDt&"#>=dal AND #"&oDt&"#<=al order by comune ASC")
    
    %>
    <table width="390">
    <%
    do while not recset.eof
    %>
    <tr><td width="85" bgcolor="#0099FF"><font color="#FFFFFF">dal: <%=recset("dal")&" al: "&recset("al")%></font></td>
    </tr>
    <tr>  
      <td width="293"><%=recset("comune")%><ul>[*]<font size="2"><%=recset("evento")%> 
    
    	      <%=recset("descrizione")%>
    
              <%
    	if recset("link")<>"" then %>
    	      " target="_blank">Link all'evento</font>
    	<%
    	end if
    	%>
    	[/list]</td>
    </tr>
    <%
    recset.movenext
    loop
    %>
    </table>
    che mi stampa nell'iframe tutti gli eventi trovati nel db in base alla data scelta nel form.

    Se io volessi eliminare l'iframe, ed elaborare la pagina con ajax, come potrei fare?

    Ovvero:
    cambio il codice del form in
    codice:
    <form action="#" onSubmit="eseguiRichiesta(eventi.asp);return false;">
    funzione eseguiRichiesta
    codice:
    function eseguiRichiesta(url) {
    
            var http_request = false;
    
            if (window.XMLHttpRequest) { // Mozilla, Safari,...
                http_request = new XMLHttpRequest();
                if (http_request.overrideMimeType) {
                    http_request.overrideMimeType('text/xml');
                    // Vedi note sotto
                }
            } else if (window.ActiveXObject) { // IE
                try {
                    http_request = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    try {
                        http_request = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e) {}
                }
            }
    
            if (!http_request) {
                alert('Giving up :( Non riesco a creare una istanza XMLHTTP');
                return false;
            }
            http_request.onreadystatechange = function() { alertContents(http_request); };
            http_request.open('GET', url, true);
            http_request.send(null);
    
        }
    
        function alertContents(http_request) {
    
            if (http_request.readyState == 4) {
                if (http_request.status == 200) {
    				
                    !!!! funzione che mi stampa i risultati della pagina asp !!!!!!
    
    
                } else {
                    alert('Si è verificato un problema con la richiesta');
                }
            }
    
        }
    modifico la pagina asp in questo modo (ometto gli script per la connessione e il recordset):
    codice:
    do while not recset.eof
    %>
    evento=recset("dal")&"|"&recset("al")&"|"&recset("comune")&"|"&recset("evento")&"|"&recset("descrizione")&"|"&recset("link")
    recset.movenext
    loop
    response.write(evento)
    In definitiva, questo script asp, mi stampa un solo evento, invece io vorrei stampare tutti gli eventi presenti in un dato giorno, mentre nello script precedente, dove ho messo i simboli !!! non saprei che mettere per smistare tutti gli eventi che mi stampa la pagina asp.

    Vi ringrazio in anticipo per la pazienza e per l'aiuto.

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    dovresti mettere il tuo codice asp lì prestando attenzione alle " cioè...
    document.getElementById("NOME_DIV_RISULTATO").inne rHTML="codice asp che stampa tabella con tutti i risultati";
    così, quando la richiesta è ok esegue il codice asp e visualizza quello che asp restituisce

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    grazie Oronze per la tua risposta,
    il problema è che non so gestire l'output da file asp, praticamente
    codice:
    function alertContents(http_request) {
    
            if (http_request.readyState == 4) {
                if (http_request.status == 200) {
    				
                    !!!! funzione che mi stampa i risultati della pagina asp !!!!!!
    
    
                } else {
                    alert('Si è verificato un problema con la richiesta');
                }
            }
    
        }
    potrei crearmi un div ok, e stampare il risultato tramite innerHTML, ma non so che devo mettere al posto di !!!!

  4. #4
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    se non sai gestire l'output asp dovresti postare in asp allora:P io nn lo conosco, se vuoi te lo faccio in php

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    codice:
    function alertContents(http_request) {
    
            if (http_request.readyState == 4) {
                if (http_request.status == 200) {
    	
                    document.getElementById('responseAjax').innerHTML=http_request.responseText
    
                } else {
                    alert('Si è verificato un problema con la richiesta');
                }
            }
    
        }
    nel body della pagina dove fai la chiamata ajax inserisci un div che chiamerai id="response.Ajax" e che conterrà oput della pagina asp.

    per la ricerca parti da qui
    codice:
    <form id="form1" method="post" action="">
      
    
    
        <input type="text" name="data" id="data" />
        <input type="button" name="ricerca" id="ricerca" value="ricerca" onclick="eseguiRichiesta(descrEvento.asp?data=document.getElementById('data').value);return false;" />
      </p>
    </form>
    e utilizza la prima pagina asp (del frame quella che ti dava tutti i risultati che dovrebbe essere descrEvento.asp) se non funziona prova a togliere il return false dal pulsante ricerca (non sono sicuro che ci voglia)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    ok, ci siamo!
    mi sono creato il div, lo script funziona, ma purtroppo, mi esce qualcosa tipo:

    10/10/2008|11/10/2008|MonteSacro|Sagra della castagna|"Evento Folk che si svolge ogni anno nelle zone di...|http://www.sitoEventi.est

    come potrei fare per impaginarlo meglio?

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma stai usando questa pagina?
    codice:
    <%
    do while not recset.eof
    %>
    <tr><td width="85" bgcolor="#0099FF"><font color="#FFFFFF">dal: <%=recset("dal")&" al: "&recset("al")%></font></td>
    </tr>
    <tr>  
      <td width="293"><%=recset("comune")%><ul>[*]<font size="2"><%=recset("evento")%> 
    
    	      <%=recset("descrizione")%>
    
              <%
    	if recset("link")<>"" then %>
    	      " target="_blank">Link all'evento</font>
    	<%
    	end if
    	%>
    	[/list]</td>
    </tr>
    <%
    recset.movenext
    loop
    %>
    o questa?
    codice:
    do while not recset.eof
    %>
    evento=recset("dal")&"|"&recset("al")&"|"&recset("comune")&"|"&recset("evento")&"|"&recset("descrizione")&"|"&recset("link")
    recset.movenext
    loop
    response.write(evento)
    come t'ho già detto usa la prima
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    sto usando la seconda,
    non so come gestire l'output della prima pagina in asp, magari se potresti farmi un'esempio per cortesia.

    Se faccio Response.write(stringa)
    riesco a recuperarla in Ajax con http_request.responseText , ma recupero solo una stringa, mentre se uso la prima pagina asp, dovrei recuperare un'intera tabella.

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.