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.
<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>
$.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
}
}
});
Waarom zeg iedereen op iedere JavaScript vraag: jQuery?
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.