ajax con due div

tigre2209

Utente Attivo
19 Set 2007
57
7
8
Avrei bisogno di un aiuto su come posso utilizzare ajax con due richieste sulla stessa pagina asp.
In pratica ho provato cosi:

carico una pagine ajax.js
e una pagina ajax2.js

hoi inserito sulla pagina asp:

CODICE persona_______ (inserendo il valore mi carica i dati della persona sulla
<div id=risultato>

select SERVIZIO______ selezionando il valore mi carica altra select:
<div id=risultato2>

il problema è che carico la prima e mi fa vedere il risultato sulla prima div
carico la seconda e mi fa vedere il risiultato sempre sulla prima.
dove sbaglio????

e come posso risolvere ilproblema?
 
Ajax e div

questa è la prima AJAX.JS

var XMLHTTP;

function Richiesta(Stringa)
{
if (Stringa.length > 0)
{
var url = "cerca.asp?id=" + Stringa.toUpperCase();
XMLHTTP = RicavaBrowser(CambioStato);
XMLHTTP.open("GET", url, true);
XMLHTTP.send(null);
}
else
{
document.getElementById("risultati").innerHTML = "";
}
}

function CambioStato()
{
if (XMLHTTP.readyState == 4)
{
var R = document.getElementById("risultati");
R.innerHTML = XMLHTTP.responseText;
}
}

function RicavaBrowser(QualeBrowser)
{
if (navigator.userAgent.indexOf("MSIE") != (-1))
{
var Classe = "Msxml2.XMLHTTP";
if (navigator.appVersion.indexOf("MSIE 5.5") != (-1));
{
Classe = "Microsoft.XMLHTTP";
}
try
{
OggettoXMLHTTP = new ActiveXObject(Classe);
OggettoXMLHTTP.onreadystatechange = QualeBrowser;
return OggettoXMLHTTP;
}
catch(e)
{
alert("Errore: l'ActiveX non verrà eseguito!");
}
}
else if (navigator.userAgent.indexOf("Mozilla") != (-1))
{
OggettoXMLHTTP = new XMLHttpRequest();
OggettoXMLHTTP.onload = QualeBrowser;
OggettoXMLHTTP.onerror = QualeBrowser;
return OggettoXMLHTTP;
}
else
{
alert("L'esempio non funziona con altri browser!");
}
}

--------------------
QUESTA è LA SEDCONDA



var XMLHTTP;

function Richiesta2(campo)
{
if (campo.length > 0)
{
var url = "cerca_tipo.asp?servizio=" + campo.toUpperCase();
XMLHTTP = RicavaBrowser(CambioStato);
XMLHTTP.open("GET", url, true);
XMLHTTP.send(null);
}
else
{
document.getElementById("risultati2").innerHTML = "";
}
}

function CambioStato()
{
if (XMLHTTP.readyState == 4)
{
var RR = document.getElementById("risultati2");
RR.innerHTML = XMLHTTP.responseText;
}
}

function RicavaBrowser(QualeBrowser)
{
if (navigator.userAgent.indexOf("MSIE") != (-1))
{
var Classe = "Msxml2.XMLHTTP";
if (navigator.appVersion.indexOf("MSIE 5.5") != (-1));
{
Classe = "Microsoft.XMLHTTP";
}
try
{
OggettoXMLHTTP = new ActiveXObject(Classe);
OggettoXMLHTTP.onreadystatechange = QualeBrowser;
return OggettoXMLHTTP;
}
catch(e)
{
alert("Errore: l'ActiveX non verrà eseguito!");
}
}
else if (navigator.userAgent.indexOf("Mozilla") != (-1))
{
OggettoXMLHTTP = new XMLHttpRequest();
OggettoXMLHTTP.onload = QualeBrowser;
OggettoXMLHTTP.onerror = QualeBrowser;
return OggettoXMLHTTP;
}
else
{
alert("L'esempio non funziona con altri browser!");
}
}
 
Prova a creare un solo file con le funzioni Richiesta e Richiesta2, quindi una sola volta le funzioni da CambioStato in poi.

Il problema POTREBBE essere il fatto che le ripeti.

Inizia con questo test; se ci sono altri errori concettuali li analizziamo dopo.

Fammi sapere!
 
Cosi, fammi sapere!

var XMLHTTP;

function Richiesta(Stringa)
{
if (Stringa.length > 0)
{
var url = "cerca.asp?id=" + Stringa.toUpperCase();
XMLHTTP = RicavaBrowser(CambioStato);
XMLHTTP.open("GET", url, true);
XMLHTTP.send(null);
}
else
{
document.getElementById("risultati").innerHTML = "";
}
}

function Richiesta2(campo)
{
if (campo.length > 0)
{
var url = "cerca_tipo.asp?servizio=" + campo.toUpperCase();
XMLHTTP = RicavaBrowser(CambioStato);
XMLHTTP.open("GET", url, true);
XMLHTTP.send(null);
}
else
{
document.getElementById("risultati2").innerHTML = "";
}
}

function CambioStato()
{
if (XMLHTTP.readyState == 4)
{
var R = document.getElementById("risultati");
R.innerHTML = XMLHTTP.responseText;
}
}

function RicavaBrowser(QualeBrowser)
{
if (navigator.userAgent.indexOf("MSIE") != (-1))
{
var Classe = "Msxml2.XMLHTTP";
if (navigator.appVersion.indexOf("MSIE 5.5") != (-1));
{
Classe = "Microsoft.XMLHTTP";
}
try
{
OggettoXMLHTTP = new ActiveXObject(Classe);
OggettoXMLHTTP.onreadystatechange = QualeBrowser;
return OggettoXMLHTTP;
}
catch(e)
{
alert("Errore: l'ActiveX non verrà eseguito!");
}
}
else if (navigator.userAgent.indexOf("Mozilla") != (-1))
{
OggettoXMLHTTP = new XMLHttpRequest();
OggettoXMLHTTP.onload = QualeBrowser;
OggettoXMLHTTP.onerror = QualeBrowser;
return OggettoXMLHTTP;
}
else
{
alert("L'esempio non funziona con altri browser!");
}
}
 
ho provato ma il risultato è lo stesso.

il risultato viene inviato sempre alla stessa DIV
<div id="risultati"></div>
 
NON PUO ESSERE CHE IL PROBLEMA è QUA?


Function CambioStato()
{
if (XMLHTTP.readyState == 4)
{
var R = document.getElementById("risultati"); ?????????????????
R.innerHTML = XMLHTTP.responseText;
}
}
 
Si, quello è l'inghippo.

Tu hai degli ID che si chiamano risultato e risultato2, mentre da JS tenti di accedere a risultati.

Non sono certo che cosi possa funzionare, ma provaci e fammi sapere:

var XMLHTTP, quale_div;

function Richiesta(Stringa)
{
quale_div = "risultato";
if (Stringa.length > 0)
{
var url = "cerca.asp?id=" + Stringa.toUpperCase();
XMLHTTP = RicavaBrowser(CambioStato);
XMLHTTP.open("GET", url, true);
XMLHTTP.send(null);
}
else
{
document.getElementById(quale_div).innerHTML = "";
}
}

function Richiesta2(campo)
{
quale_div = "risultato2";
if (campo.length > 0)
{
var url = "cerca_tipo.asp?servizio=" + campo.toUpperCase();
XMLHTTP = RicavaBrowser(CambioStato);
XMLHTTP.open("GET", url, true);
XMLHTTP.send(null);
}
else
{
document.getElementById(quale_div).innerHTML = "";
}
}

function CambioStato()
{
if (XMLHTTP.readyState == 4)
{
var R = document.getElementById(quale_div);
R.innerHTML = XMLHTTP.responseText;
}
}

function RicavaBrowser(QualeBrowser)
{
if (navigator.userAgent.indexOf("MSIE") != (-1))
{
var Classe = "Msxml2.XMLHTTP";
if (navigator.appVersion.indexOf("MSIE 5.5") != (-1));
{
Classe = "Microsoft.XMLHTTP";
}
try
{
OggettoXMLHTTP = new ActiveXObject(Classe);
OggettoXMLHTTP.onreadystatechange = QualeBrowser;
return OggettoXMLHTTP;
}
catch(e)
{
alert("Errore: l'ActiveX non verrà eseguito!");
}
}
else if (navigator.userAgent.indexOf("Mozilla") != (-1))
{
OggettoXMLHTTP = new XMLHttpRequest();
OggettoXMLHTTP.onload = QualeBrowser;
OggettoXMLHTTP.onerror = QualeBrowser;
return OggettoXMLHTTP;
}
else
{
alert("L'esempio non funziona con altri browser!");
}
}
 
mi succede una cosa strana,
con quel problema ajax.
su un pc funziona,
ma quando lo copio sul portatile mi fa questo effetto:

1- innanzitutto sulla tabella sql server i dati sono scritti con la prima lettera maiuscola.
2- non mi trova nessun dato, ma se scrivo il dato tutto MAIUSCOLO funziona, ma mi scrive nella select questo:
pippo?????
caio?????
mi mette in pratica tanti ???
dipende da questo?
var url = "cerca.asp?id=" + Stringa.toUpperCase();
 
Scusa un attimo... a cerca.asp passi un parametro che immagino sia numerico (ID) quindi il metodo per trasformare i caratteri in maiuscolo, od in minuscolo che sia, mica serve a molto...

Cosa filtri con toUpperCase? Che parametro passi alla funzione / querystring di cerca.asp?
 
hai ragione,
ho due chiamate ad ajax una è numerica infatti, ma la seconda chiamata è alfabetica, come posso fare per non usare toUpperCase?
il problema è che non mi riconosce il campo che ho memorizzato in Sql server, ho cambiato il valore di ricerca Sql server mettendo tutto in MAIUSCOLO e la ricerca funziona, solo che alla fine del valore mi scrive tante ??????????
 
hai ragione,
ho due chiamate ad ajax una è numerica infatti, ma la seconda chiamata è alfabetica, come posso fare per non usare toUpperCase?

Puoi fare na cosa del genere:

function Richiesta(Stringa)
{
if (Stringa.length > 0)
{
if (isNaN(Stringa))
{
var url = "cerca.asp?id=" + Stringa.toUpperCase();
}
else
{
var url = "cerca.asp?id=" + Stringa;
}

XMLHTTP = RicavaBrowser(CambioStato);
XMLHTTP.open("GET", url, true);
XMLHTTP.send(null);
}
else
{
document.getElementById("risultati").innerHTML = "";
}
}

il problema è che non mi riconosce il campo che ho memorizzato in Sql server, ho cambiato il valore di ricerca Sql server mettendo tutto in MAIUSCOLO e la ricerca funziona, solo che alla fine del valore mi scrive tante ??????????

Guarda, non ho mai provato con SQL Server ma soloo con Access e MySQL.

Prova con diversi browser, credo sia un problema di intestazioni della pagina o di Javascript che parsa male le stringhe.

Nella pagina inserisci questo:

<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">

tra <head> e </head> dovrebbe eliminare problemi di caratteri.

Fammi sapere.
 

Discussioni simili