[js] functie gebruiken uit ajax request

Pagina: 1
Acties:
  • 169 views sinds 30-01-2008
  • Reageer

  • Dwightjo
  • Registratie: Juni 2003
  • Laatst online: 23-08 13:40
Ik ben bezig met het maken van een pagina die een AJAX request doet naar een php script (get)
Dit heb ik eindelijk werkend.

Mijn pagina maakt verder gebruik van enkele javascript functies die ik laad met behulp van 'domready'

De pagina die wordt opgehaald met behulp van mijn AJAX request bevat enkele javascript functies zoals onderstaande:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script language="Javascript">
function doCheckb1a1ad127cbfab034dadf86f781ad0a2(checkThem)
{
  document.getElementById("check_4723b79ed67097949958c2c660bdda60").checked = checkThem;
  document.getElementById("check_69fb3f23f7f9a5bbaf59527efbf1a87a").checked = checkThem;
  document.getElementById("check_6b094af0f8026a58ea361209ba1605ce").checked = checkThem;
  document.getElementById("check_e60cdbf7e0f4227fe5265860e2b70d9b").checked = checkThem;
  document.getElementById("check_e04d741dd909b08ee40fba99be5a1cfe").checked = checkThem;
  document.getElementById("check_3ebe3dd610a38060f237bd96e4f00068").checked = checkThem;
  document.getElementById("check_34224446ae7cc1c506f9671f5920a691").checked = checkThem;
  document.getElementById("check_f211a0b64905e7c651e53a649f629526").checked = checkThem;
  document.getElementById("check_fbc0ef905726d9660cdfc06660a5d77e").checked = checkThem;
  document.getElementById("check_386ec24477119dabb7363cf8018e674c").checked = checkThem;
  document.getElementById("check_63795eb7a16f92a896ec0d25c21539dd").checked = checkThem;
  document.getElementById("check_f2958b35f60004d2b71d34e4c0cc4d68").checked = checkThem;
  document.getElementById("check_6d8de565502db7356aba37b8ce6e3a93").checked = checkThem;
  document.getElementById("check_9606a6a4d3b1ff1c1651f60554683628").checked = checkThem;
}
</script>


wanneer ik nu gebruik van deze functie wil maken, dan gebeurd er niets.
Met firebug ben ik al bezig geweest om te controleren waarom het niet werkt.
Firebug geeft dus aan dat mijn functie: "doCheckb1a1ad127cbfab034dadf86f781ad0a2"
niet gedefinieerd is.

Als ik het goed begrijp moet ik mijn browser nu dus vertellen dat er nieuwe javascript functies beschikbaar zijn, alleen ik weet niet hoe ik dat moet triggeren.

Illest Alive


Verwijderd

Om te weten wat er mis gaat is het belangrijk om te weten wat je precies hoe met AJAX inlaadt en hoe je dat verwerkt in de bestaande pagina. Op deze manier kunnen we niet zoveel.

  • GregoryBE
  • Registratie: April 2004
  • Laatst online: 17-11 00:39
Een simpele AJAX request naar een andere pagina, de geladen pagina wordt vervolgens in een DIV geladen:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
function load_in_Div(url,div_id)
{
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
        alert ("Your browser does not support AJAX!");
        return;
    }
    else
    {
        xmlHttp.onreadystatechange=stateChanged;
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
    }
} 
function stateChanged() 
{ 
    if (xmlHttp.readyState==4)
    {       //resultaat in DIV stoppen
        document.getElementById(divName).innerHTML=xmlHttp.responseText;  stoppen.

    }
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}//*/


Hopelijk ben je er wat mee...

It's just a matter of time...


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Dwightjo schreef op zondag 01 juli 2007 @ 04:55:
De pagina die wordt opgehaald met behulp van mijn AJAX request bevat enkele javascript functies zoals onderstaande
Scripts in Ajax downloads worden in principe genegeerd. Dit kun je oplossen door de output door eval te trekken.

Nog netter is natuurlijk als ik deze code zo zie om gewoon Asynchronous Javascript And XML te gebruiken hoe het bedoeld is: middels XML de te veranderen elementen downloaden en dat vervolgens netjes generiek te parsen in je *aanroepende* Javascript.

Professionele website nodig?


Verwijderd

Kijk nog even naar je GetXmlHttpObject() functie,
de microsoft-objecten die je gebruikt zijn niet de aanbevolen versies!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 22:45

MBV

@ts: hoe laad je die dingen in dan? Ik ken een paar constructies:
- xajax: je roept xajax_phpFunctieNaam() aan, die een bepaald object terug geeft wat uitgevoerd wordt (waar dus javascript in kan staan)
- in de header zoiets:
HTML:
1
<script type="text/javascript" src="scripts/dynamisch.php"></script>
dus niet language="javascript", dat is al sinds 1999 veranderd ofzo :X

- bovenstaande, maar dan met DOM dynamisch in de header erbij zetten

Hoe kom jij aan die javascript? Hoe zet je het erbij?

[ Voor 8% gewijzigd door MBV op 01-07-2007 13:40 ]


  • funkwurm
  • Registratie: December 2005
  • Laatst online: 22-02-2021
Ik zou (wat ook min of meer door MBV wordt voorgesteld) de javascript aanpassen zodat deze niet na het laden van de pagina door een ajax-request gegenereerd hoeft te worden. Maar alleen de gegevens die variabel zijn in de functie:
JavaScript:
1
2
3
4
5
6
function doCheck(checkThem, checkIds)
{
  var i=checkIds.length;
  while (i--)
    document.getElementById("check_"+checkIds[i]).checked = checkThem;
}

Dan kun je de hashmeuk wel met ajax ophalen, in een array plempen en die meegeven aan deze doCheck.
Pagina: 1