Hallo tweakers,
Ik probeer al een tijdje, met betrekking tot een gastenboek-formulier, een gastenboekbijdrage te laten opslaan in een database. Nu had ik laatst het gedacht om dit eens te laten gebeuren via Ajax. Vandaar ik vanuit PHP probeer een javascript-functie aan te roepen uit een extern javascript-bestand.
Het php-deelscript ziet er als volgt uit:
...
Dit script maakt deel uit van een .inc bestand. De pagina waar alles ge-include wordt bevat onderaan een verwijzing naar het javascript-bestand met alle javascript-functies in.
De opgeroepen functie ziet er als volgt uit:
Ik heb reeds gecontroleerd op tikfouten, verkeerde quotes en tags. Controle met een alert(“hallo”) als eerste regel in de javascript-functie doet niets. Een simpele test-functie met alert-popup in het .inc-bestand laat het wel doen. Ook heb ik hier op T.net de FAQ gelezen en gebruik gemaakt van error_reporting(E_ALL), maar ook zonder resultaat (geen errors gemeld). Er gebeurt dus nu het verzenden van de ingevulde informatie niets (geen 'alert' popup en geen opslag in de database).
Kan iemand mij een duwtje geven in de juiste richting? Dank U alvast!
Ik probeer al een tijdje, met betrekking tot een gastenboek-formulier, een gastenboekbijdrage te laten opslaan in een database. Nu had ik laatst het gedacht om dit eens te laten gebeuren via Ajax. Vandaar ik vanuit PHP probeer een javascript-functie aan te roepen uit een extern javascript-bestand.
Het php-deelscript ziet er als volgt uit:
...
code:
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
| <?php if(isset($_POST['verzend'])){ error_reporting(E_ALL); ini_set("display_errors", 1); $n = $_POST['naam']; $naam = safe_text($n); $ea = $_POST['emailadres']; $emailadres = safe_text($ea); $b = $_POST['bericht']; $bericht = safe_text($b); $ipadres = $_SERVER['REMOTE_ADDR']; echo ("<script type=\'text/javascript\'>Add_Message(" . $naam . ", " . $emailadres . ", " . $bericht . ", " . $ipadres . ");</script>"); } else{ ?> <form name="bericht_invoer" style="margin-top:2cm;" action="<?php $_SERVER['PHP_SELF'];?>" method="post" onsubmit="return Mail_Check(this)"> <fieldset> <legend>Tekstberichtje nalaten</legend> <label>Naam:</label><textarea name="naam" id="naam" cols="30" style="height:15px; margin-left:50px;" onkeyup="limitMessage(); FieldCheck2()"></textarea><br/> <label>Emailadres:</label><textarea name="emailadres" id="emailadres" cols="40" style="height:15px; margin-left:15px;" onkeyup="limitMessage(); FieldCheck2()"></textarea><br/> <label>Bericht:</label><br/><textarea name="bericht" id="bericht" rows="10" cols="50" onkeydown="limitMessage();" onkeyup="limitMessage(); FieldCheck2();"></textarea> <input readonly type="text" id="chars" size="3" value="200"/> <!-- <input type="hidden" id="check" size="10"/> --> <input type="submit" name="verzend" id="verzend" value="verzenden" disabled="disabled" style="clear: left; display: block; margin-bottom: 15px;" /> </fieldset> </form> <?php }?> |
Dit script maakt deel uit van een .inc bestand. De pagina waar alles ge-include wordt bevat onderaan een verwijzing naar het javascript-bestand met alle javascript-functies in.
De opgeroepen functie ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| function Add_Message(naam, emailadres, bericht, ipadres){ alert("bericht toevoegen..."); xmlhttp = GetXmlHttpObject(); var a = 0; if(xmlhttp == null){ alert("Uw browser ondersteunt geen HTTP-aanvragen") } var url = "ajax.php"; url = url + "?naam=" + naam + "&email=" + emailadres + "&bericht=" + bericht + "&ipadres=" + ipadres; xmlhttp.onreadystatechange = Add_M; xmlhttp.open("GET", url, true); xmlhttp.send(null); } |
Ik heb reeds gecontroleerd op tikfouten, verkeerde quotes en tags. Controle met een alert(“hallo”) als eerste regel in de javascript-functie doet niets. Een simpele test-functie met alert-popup in het .inc-bestand laat het wel doen. Ook heb ik hier op T.net de FAQ gelezen en gebruik gemaakt van error_reporting(E_ALL), maar ook zonder resultaat (geen errors gemeld). Er gebeurt dus nu het verzenden van de ingevulde informatie niets (geen 'alert' popup en geen opslag in de database).
Kan iemand mij een duwtje geven in de juiste richting? Dank U alvast!