php functie na onclick event
is het mogelijk om in een onclick event een php functie uit te laten voeren:
<a onclick='". function eenfunctie() ."'>
gaat zoiets werken, en zo nee, hoe kan ik het dan wel laten werken?
Maar je hebt wel een goede alternatief, dat is namelijk AJAX.
Ben je daar bekend mee? (google eventueel).
voorbeeld van een van de functies:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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
47
48
49
50
51
52
53
54
55
56
57
58
<?php
function sortByName(){
if($sort == "ByNameAsc"){
$results = array();//begin van table zetten, met sorteerknoppen.
$results[] = "<table border='0' cellpadding='0' cellspacing='0'>";
$results[] = "<tr>
<td><a onclick='". function sortById() ."'>ID</a></td>
<td><a onclick='". function sortByName() ."'>Username</a></td>
<td><a onclick='". function sortByCash() ."'>Cash</a></td>
<td><a onclick='". function sortByPower() ."'>Macht</a></td>
<td>Actie</td>
</tr>";
$sql3 = "SELECT * FROM users ORDER BY username DESC";
$qry3 = mysql_query($sql3);
$res3 = mysql_fetch_array($qry3);
$i = 1;
foreach($res3 as $user){
$results[] = "<tr>
<td>".$i."</td>
<td>".$obj['naam']."</td>
<td>".$obj['cash']."</td>
<td>".$obj['macht']."</td>
<td><a href='attack".$obj['id'].".php'>aanvallen</a></td>
</tr>";
$i++;
}
$sort = "ByNameDesc";
}else{
$results = array();//begin van table zetten, met sorteerknoppen.
$results[] = "<table border='0' cellpadding='0' cellspacing='0'>";
$results[] = "<tr>
<td><a onclick='". function sortById() ."'>ID</a></td>
<td><a onclick='". function sortByName() ."'>Username</a></td>
<td><a onclick='". function sortByCash() ."'>Cash</a></td>
<td><a onclick='". function sortByPower() ."'>Macht</a></td>
<td>Actie</td>
</tr>";
$sql3 = "SELECT * FROM users ORDER BY username ASC";
$qry3 = mysql_query($sql3);
$res3 = mysql_fetch_array($qry3);
$i = 1;
foreach($res3 as $user){
$results[] = "<tr>
<td>".$i."</td>
<td>".$obj['naam']."</td>
<td>".$obj['cash']."</td>
<td>".$obj['macht']."</td>
<td><a href='attack".$obj['id'].".php'>aanvallen</a></td>
</tr>";
$i++
}
$sort = "ByNameAsc";
$results[] = "</table>";
}
}
?>
function sortByName(){
if($sort == "ByNameAsc"){
$results = array();//begin van table zetten, met sorteerknoppen.
$results[] = "<table border='0' cellpadding='0' cellspacing='0'>";
$results[] = "<tr>
<td><a onclick='". function sortById() ."'>ID</a></td>
<td><a onclick='". function sortByName() ."'>Username</a></td>
<td><a onclick='". function sortByCash() ."'>Cash</a></td>
<td><a onclick='". function sortByPower() ."'>Macht</a></td>
<td>Actie</td>
</tr>";
$sql3 = "SELECT * FROM users ORDER BY username DESC";
$qry3 = mysql_query($sql3);
$res3 = mysql_fetch_array($qry3);
$i = 1;
foreach($res3 as $user){
$results[] = "<tr>
<td>".$i."</td>
<td>".$obj['naam']."</td>
<td>".$obj['cash']."</td>
<td>".$obj['macht']."</td>
<td><a href='attack".$obj['id'].".php'>aanvallen</a></td>
</tr>";
$i++;
}
$sort = "ByNameDesc";
}else{
$results = array();//begin van table zetten, met sorteerknoppen.
$results[] = "<table border='0' cellpadding='0' cellspacing='0'>";
$results[] = "<tr>
<td><a onclick='". function sortById() ."'>ID</a></td>
<td><a onclick='". function sortByName() ."'>Username</a></td>
<td><a onclick='". function sortByCash() ."'>Cash</a></td>
<td><a onclick='". function sortByPower() ."'>Macht</a></td>
<td>Actie</td>
</tr>";
$sql3 = "SELECT * FROM users ORDER BY username ASC";
$qry3 = mysql_query($sql3);
$res3 = mysql_fetch_array($qry3);
$i = 1;
foreach($res3 as $user){
$results[] = "<tr>
<td>".$i."</td>
<td>".$obj['naam']."</td>
<td>".$obj['cash']."</td>
<td>".$obj['macht']."</td>
<td><a href='attack".$obj['id'].".php'>aanvallen</a></td>
</tr>";
$i++
}
$sort = "ByNameAsc";
$results[] = "</table>";
}
}
?>
Asynchronous_JavaScript_and_XML,
Je maakt eigenlijk kortweg gebruik van Javascript om een XMLHttpRequest te doen richting de server, zodat een website (pagina) niet telkens opnieuw hoeft worden ingeladen maar je gewoon een bepaald deel laat updaten.
Alleen je zult de manier van aanpak, geheel anders moeten doen.
En ik heb nu even de tijd niet om een goed voorbeeld voor je neer te zetten, maar wellicht lees je de wikipedia pagina van de bovengenoemde link even door.
Je maakt eigenlijk kortweg gebruik van Javascript om een XMLHttpRequest te doen richting de server, zodat een website (pagina) niet telkens opnieuw hoeft worden ingeladen maar je gewoon een bepaald deel laat updaten.
Alleen je zult de manier van aanpak, geheel anders moeten doen.
En ik heb nu even de tijd niet om een goed voorbeeld voor je neer te zetten, maar wellicht lees je de wikipedia pagina van de bovengenoemde link even door.
Ik heb het helemaal doorgelezen en ook de tutorial van w3schools.com, maar ik snap er nix van. kan iemand mij daarmee helpen?
Tuurlijk, wat wil je precies weten?
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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
47
48
49
50
51
52
53
54
55
56
57
58
<script type="text/javascript">
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;
}
/* nieuwe xmlhttp request */
function GetContent()
{
function aanpassen()
{
if(xmlHttp.readyState == 4)
{
document.getElementById("MyDiv").innerHTML=xmlHttp.responseText;
}
else {
document.getElementById("MyDiv").innerHTML="Laden...";
}
}
/* ready state 4, dan is ie klaar met inladen, anders verschijnt er een tekst met "Laden" */
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Je browser ontsteunt geen AJaX!");
return;
}
var url="ajax.php";
xmlHttp.onreadystatechange=aanpassen;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
/* ajax.php openen , en dan de functie aanpassen() aanroepen. */
}
</script>
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;
}
/* nieuwe xmlhttp request */
function GetContent()
{
function aanpassen()
{
if(xmlHttp.readyState == 4)
{
document.getElementById("MyDiv").innerHTML=xmlHttp.responseText;
}
else {
document.getElementById("MyDiv").innerHTML="Laden...";
}
}
/* ready state 4, dan is ie klaar met inladen, anders verschijnt er een tekst met "Laden" */
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Je browser ontsteunt geen AJaX!");
return;
}
var url="ajax.php";
xmlHttp.onreadystatechange=aanpassen;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
/* ajax.php openen , en dan de functie aanpassen() aanroepen. */
}
</script>
Dit stukje zorgt er dus voor dat als je de functie GetContent() aanroept dat de div "MyDiv" de tekst krijg die ajax.php geeft.
Om deze te begrijpen moet je wel dit lezen
Gewijzigd op 01/01/1970 01:00:00 door Henk PHP
Oke, ik snap wat daar staat (ongeveer) maar hoe zet ik daar nu mijn php functies in of waar staan ze?
Als je in dat script externe input nodig hebt, dan zul je dat via GET variabelen in de url die je gebruik voor je AJAX request op moeten nemen. Je script zal vervolgens deze GET variabelen uit moeten lezen en er iets mee moeten doen.
btw.. is er een php functie die variabelen vernietigt?
Gewijzigd op 01/01/1970 01:00:00 door Pieter Joordens