problema javascript in request
Moderator: Moderatori
problema javascript in request
in codul pe care il solicit prin ajax, deci in pagina care este incarcata in locul dorit printr-un drop-down meniu, am un script java. in pagina solicitata merge perfect, in pagina in care folosesc metoda ajax pt a solicita pagina respectiva, nu mai merge, deoarece zice ca nu exista obiectul (corect, daca ne uitam in sursa vedem ca nu avem sursa a ceea ce se incarca prin ajax)
care este solutia la asa ceva va rog ?
multumesc
care este solutia la asa ceva va rog ?
multumesc
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
ai aici un mic exemplu de ajax, vezi daca te ajuta...
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
deci ca sa inteleg eu bine, tu apelezi prin AJAX o pagina si din pagina apelata vrei sa mai apelezi tot prin AJAX alta pagina (sau un obiect). Pai nu te poti folosii de acelasi script? Nu am testat ce vrei tu, dar teoretic, daca nu se cearta intre ele variabilele ar trebui sa mearga... (in cazul meu la exemplul dat, ar trebui in locul
id="locul_de_afisare"
sa am 2 id-uri separate, unul pentru prima pagina si al doilea pentru celalalt obiect inclus ulterior...
Cum am spus, nu am testat ideea ta inca...
id="locul_de_afisare"
sa am 2 id-uri separate, unul pentru prima pagina si al doilea pentru celalalt obiect inclus ulterior...
Cum am spus, nu am testat ideea ta inca...
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
iata si niste cod:
pagina care apeleaza: x.htm
si pagina apelata: y.htm
dupa cum veti putea observa, y.htm de sine statator bineinteles ca merge alertul la click, dar din x.htm va da eroare javascript, ca nu gaseste obiectul (functia). Ce se poate face ?
pagina care apeleaza: x.htm
Cod: Selectaţi tot
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<BODY>
<script type="text/javascript" language="javascript">
function makeRequest(url) {
var http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
// See note below about this line
}
} 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 :( Cannot create an XMLHTTP instance');
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) {
document.getElementById('hot').innerHTML=http_request.responseText;
} else {
alert('There was a problem with the request.');
}
}
}
</script>
<span
style="cursor: pointer; text-decoration: underline"
onclick="makeRequest('test.html')">
Make a request
</span>
<br /><br />
<div id=hot>
</div>
</BODY>
</HTML>
si pagina apelata: y.htm
Cod: Selectaţi tot
<script type="text/javascript" language="javascript">
<!--
function mesaj()
{
alert('bla bla');
}
-->
</script>
<a href="#" onClick="javascript: mesaj()">click</a>
dupa cum veti putea observa, y.htm de sine statator bineinteles ca merge alertul la click, dar din x.htm va da eroare javascript, ca nu gaseste obiectul (functia). Ce se poate face ?
- ExcalIbvr
- Senior Member
- Mesaje: 1105
- Membru din: Dum Mai 02, 2004 10:56 pm
- Localitate: Oradea
- Contact:
Am schimbat un pic... x.html:
Si y.html
Foloseste un fisier .js extern.
Cod: Selectaţi tot
<html>
<head>
<title>Ajax test</title>
<script type="text/javascript" language="javascript">
// holds an instance of XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();
// creates an XMLHttpRequest instance
function createXmlHttpRequestObject()
{
// will store the reference to the XMLHttpRequest object
var xmlHttp;
// this should work for all browsers except IE6 and older
try
{
// try to create XMLHttpRequest object
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
// assume IE6 or older
var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
"MSXML2.XMLHTTP.5.0",
"MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP",
"Microsoft.XMLHTTP");
// try every id until one works
for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
{
try
{
// try to create XMLHttpRequest object
xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
}
catch (e) {} // ignore potential error
}
}
// return the created object or display an error message
if (!xmlHttp)
alert("Error creating the XMLHttpRequest object.");
else
return xmlHttp;
}
function makeRequest(url)
{
// only continue if xmlHttp isn't void
if (xmlHttp)
{
// try to connect to the server
try
{
// continue only if the XMLHttpRequest object isn't busy
// and the cache is not empty
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
{
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = alertContents;
xmlHttp.send(null);
}
}
catch (e)
{
// display an error when failing to connect to the server
alert(e.toString());
}
}
}
// function that handles the HTTP response
function alertContents()
{
// when readyState is 4, we read the server response
if (xmlHttp.readyState == 4)
{
// continue only if HTTP status is "OK"
if (xmlHttp.status == 200 || xmlHttp.status == 0)
{
try
{
var response = xmlHttp.responseText;
document.getElementById('hot').innerHTML = response;
}
catch(e)
{
alert(e.toString());
}
}
else
{
alert("Not ready");
}
}
}
function mesaj()
{
alert('bla bla');
}
</script>
</head>
<body>
<a href="javascript: void(0)" onclick="makeRequest('y.html')">Make a request</a>
<br /><br />
<div id="hot"></div>
</body>
</html>
Si y.html
Cod: Selectaţi tot
<a href="javascript: void(0)" onclick="javascript: mesaj()">click</a>
Foloseste un fisier .js extern.
ok, tu ai inlaturat cauza, eu vroiam sa stiu de ce nu merge asa cum era Adica ai pus functia mesaj() in x.htm
Problema este ca y.htm de multe ori este y.php, in care o functie javascript este generata dinamic. Acesta este si cazul meu (in y.php generez o functie javascript cu pozele necesare pt slideshow in functie de parametrul trimis lui y.php), exemplul cu x.htm si y.htm a fost pt a intelege voi care este buba, si anume ca un script java din y.htm nu poate fi apelat. De ce nu poate fi apelat ? Nu exista nici o metoda ?
Problema este ca y.htm de multe ori este y.php, in care o functie javascript este generata dinamic. Acesta este si cazul meu (in y.php generez o functie javascript cu pozele necesare pt slideshow in functie de parametrul trimis lui y.php), exemplul cu x.htm si y.htm a fost pt a intelege voi care este buba, si anume ca un script java din y.htm nu poate fi apelat. De ce nu poate fi apelat ? Nu exista nici o metoda ?
- ExcalIbvr
- Senior Member
- Mesaje: 1105
- Membru din: Dum Mai 02, 2004 10:56 pm
- Localitate: Oradea
- Contact:
@Amenthes, exista o diferenta intre AJAX si Ajax...
@user, abordezi gresit problema. Lasa functia JavaScript in afara lui y.whatever si fa-o mai generica. De la server trimite doar parametri, nu functia intreaga. Trimiti niste valori pe care le pasezi functiei, sa faca ce vrei tu.
Poti folosi XML pentru raspunsul server-ului sau, si mai bine, JSON.
@user, abordezi gresit problema. Lasa functia JavaScript in afara lui y.whatever si fa-o mai generica. De la server trimite doar parametri, nu functia intreaga. Trimiti niste valori pe care le pasezi functiei, sa faca ce vrei tu.
Poti folosi XML pentru raspunsul server-ului sau, si mai bine, JSON.
Înapoi la “Librarii Javascript”
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 16 vizitatori