[AJAX/JS] Javascript laden na AJAX call
Ik ben bezig met een script waarbij de gebruiker een "antwoord" op een bepaalde vraag moet geven. Of het antwoord goed is of niet, wil ik met AJAX onder de vraag weergeven. Dit lukte, totdat ik javascript wilde gaan gebruiken.
In het bestand dat AJAX toevoegt aan de pagina staat wat javascript, waaronder een . Deze regel wordt volgens Chrome wel in de source weergegeven, maar de browser doet er niets mee. Ook iets simpels als alert("Hello World") werkt niet...
Hieronder mijn AJAX code. Volgens velen op internet een bekend probleem, maar nergens kom ik een werkende oplossing tegen.
Code (php)
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
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
<script type="text/javascript">
function getGameResults(str)
{
if (str.length==0)
{
document.getElementById("gameResults").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code voor IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
result = xmlhttp.responseText;
document.getElementById("gameResults").innerHTML = result;
}
}
xmlhttp.open("GET","the_game_results.php?p="+str,true);
xmlhttp.send();
}
</script>
JQuery?
Ik ben bijna niet bekend met programmeren in JQuery, dus een voorbeeldje zou in dat geval heel erg handig zijn (A)
http://api.jquery.com/jQuery.ajax/
ik doe het meestal zelf op de volgende manier:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$.ajax(
{
type: "POST",
url: "ajax.php",
data: "action=watjewil", // Hier moet je alles invullen wat je mee wilt sturen. dit moet op de manier van een get, in je ajax.php haal je het dan op met $_POST
// bij dit voorbeeld haal je het dan op met $_POST['action'] en er komt dan "watjewil" uit
complete: function(data)
{
if(data.responseText == "error")
{
alert("Er was een fout.");
}
else
{
//doe je ding hier
}
}
});
{
type: "POST",
url: "ajax.php",
data: "action=watjewil", // Hier moet je alles invullen wat je mee wilt sturen. dit moet op de manier van een get, in je ajax.php haal je het dan op met $_POST
// bij dit voorbeeld haal je het dan op met $_POST['action'] en er komt dan "watjewil" uit
complete: function(data)
{
if(data.responseText == "error")
{
alert("Er was een fout.");
}
else
{
//doe je ding hier
}
}
});
Dus zoiets:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
$.ajax(type, file, p,
{
type: type,
url: file,
data: "p="+p,
complete: function(data)
...
{
type: type,
url: file,
data: "p="+p,
complete: function(data)
...
En dan in de pagina <a onclick=".ajax('POST', 'the_game_results.php', '17');"></a> ??
Denk na mensen, je gaat niet een heel framework laden voor een simpele AJAX request...
Als je die gebruikt die google gehost wordt, dan zal grotendeels van de gebruikers die al hebben geladen
Roel van de Water op 02/09/2011 20:46:28:
Waarom zeg iedereen op iedere JavaScript vraag: jQuery?
Denk na mensen, je gaat niet een heel framework laden voor een simpele AJAX request...
Denk na mensen, je gaat niet een heel framework laden voor een simpele AJAX request...
Waarom zou je iets in 10 uur bouwen als het ook in 15 minuten kan? En vaak is de behoefte om een ding te bouwen en wordt dat automatisch meer. Een website met 1 javascript functie komt al bijna niet meer voor.
En inderdaad als je bijv. Google CDN pakt dan hebben al heel veel mensen die gedownload.
Je vertrouwt dus teveel op je framework. Als je dan een keer zonder internet aan een project begint ben je dus de lul.
Maar niemand bekijkt het zo, iedereen vertrouwt teveel op jQuery.
Roel van de Water op 02/09/2011 23:23:52:
Oh? Lekker slim.
Je vertrouwt dus teveel op je framework. Als je dan een keer zonder internet aan een project begint ben je dus de lul.
Maar niemand bekijkt het zo, iedereen vertrouwt teveel op jQuery.
Je vertrouwt dus teveel op je framework. Als je dan een keer zonder internet aan een project begint ben je dus de lul.
Maar niemand bekijkt het zo, iedereen vertrouwt teveel op jQuery.
Wil je offline werken aan je projecten, maak dan zeker dat er een jquery bestandje op je pc staat ;)
Roel van de Water op 02/09/2011 23:23:52:
Oh? Lekker slim.
Je vertrouwt dus teveel op je framework. Als je dan een keer zonder internet aan een project begint ben je dus de lul.
Maar niemand bekijkt het zo, iedereen vertrouwt teveel op jQuery.
Je vertrouwt dus teveel op je framework. Als je dan een keer zonder internet aan een project begint ben je dus de lul.
Maar niemand bekijkt het zo, iedereen vertrouwt teveel op jQuery.
Ik dacht dat jij jQuery ook super handig vond...
Ongeveer iedereen vind het wel handig.
Jquery word nu zelfs op veel scholen aangeleerd, omdat het een zeer goeie library is. Is daar iets mis mee?
Waar ik inderdaad wel hekel aan heb is teveel jquery, soms kan je ook gewoon zoiets doen:
document.getElementById('').innerHTML=''; inplaatsvan
$("#waza").html("Hello World"); aangezien voorbeeld 1 veel sneller is en minstens zo makkelijk te typen is.
Maarten Buijs op 03/09/2011 10:38:26:
Ik dacht dat jij jQuery ook super handig vond...
Ongeveer iedereen vind het wel handig.
Ongeveer iedereen vind het wel handig.
jQuery is ook super handig, maar niet voor elk kleine JavaScript scriptje. Met PHP laad je toch ook niet heel CI in voor alleen een echo'tje?
jQuery is wel meer dan 84kb (!). Waarom zou je dat helemaal inladen voor een AJAX call? (iets wat waarschijnlijk nog niet eens 5kb is van het framework)
Nee, hier op het forum wordt er veel te vaak bij JavaScript dingen naar jQuery gewezen. Ik hoop dat dit niet de nieuwe trend wordt. Dat niemand meer echt JavaScript kan en iedereen maar gewoon blindelings jQuery volgt. Want wie moet dan later jQuery up-to-date houden? Dan snapt straks niemand meer iets van JavaScript en boeit het niemand meer wat er eigenlijk gebeurd. Dan heb je straks geen HTML, CSS, JS en PHP meer maar HTML, SASS(compass), jQuery en ZF. Wordt dat de nieuwe toekomst?
Internet Verslaafde op 03/09/2011 02:59:53:
Wil je offline werken aan je projecten, maak dan zeker dat er een jquery bestandje op je pc staat ;)
En hiervoor bestaat er ook een geweldig scriptje:
Code (php)
1
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>')</script>
Voor de gene die nog willen weten wat dit scriptje precies doet:
Kijk of window.jQuery bestaat (window.jQuery) als deze niet bestaat is dit false en gaan we naar de or (||). Hierin schrijven we een script tag die de local jquery ophaalt.
Gewijzigd op 03/09/2011 10:53:25 door Wouter J
$('#').load();
Het werkt gewoon veel fijner.
Ik heb veel liever de echte jQuery AJAX functie:
$.ajax()
En waarom er altijd naar jQuery gewezen wordt vind ik ook vreemd. MooTools is kleiner en heeft ook een uitgebreide AJAX functie: http://mootools.net/docs/core/Request/Request
Quote:
About 31KB in size (Minified and Gzipped)
Als er een kernoorlog ofzo uitbreekt dan hebben we pas een probleem, als dan de hele mensheid uitgeroeit is, ja dan is de kennis weg inderdaad.
Verder mijn advies, je verder niet druk maken en als je cross-browser en sneller javascript wilt programmeren gebruik dan gewoon jQuery. Tenzij je inderdaad maar 1 alert toont op een site oid maar zo'n scenario kan ik me bijna niet voorstellen.
Gewijzigd op 03/09/2011 13:07:16 door kees Schepers
Maarten Buijs op 03/09/2011 10:38:26:
Ik dacht dat jij jQuery ook super handig vond...
Ongeveer iedereen vind het wel handig.
Roel van de Water op 02/09/2011 23:23:52:
Oh? Lekker slim.
Je vertrouwt dus teveel op je framework. Als je dan een keer zonder internet aan een project begint ben je dus de lul.
Maar niemand bekijkt het zo, iedereen vertrouwt teveel op jQuery.
Je vertrouwt dus teveel op je framework. Als je dan een keer zonder internet aan een project begint ben je dus de lul.
Maar niemand bekijkt het zo, iedereen vertrouwt teveel op jQuery.
Ik dacht dat jij jQuery ook super handig vond...
Ongeveer iedereen vind het wel handig.
In tegendeel, ik heb nog nooit jQuery gebruikt en ik ben het voorlopig ook nog niet echt van plan eerlijk gezegd. Ik vind dat mensen teveel op JavaScript vertrouwen. Zet JS maar eens uit en ga maar eens op Hyves. :)
Gewijzigd op 04/09/2011 18:44:48 door Roel -