php functie na onclick event

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pieter Joordens

Pieter Joordens

08/02/2008 22:06:00
Quote Anchor link
Hoi,

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?
 
PHP hulp

PHP hulp

17/01/2022 02:27:40
 
Danny Roelofs

Danny Roelofs

08/02/2008 22:18:00
Quote Anchor link
Nee, althans niet op die manier.. Javascript draait client side, php server side.. dus een onclick event kan geen php functie opstarten, php moet eerst door de code parser heen voordat deze wordt uitgevoerd.

Maar je hebt wel een goede alternatief, dat is namelijk AJAX.

Ben je daar bekend mee? (google eventueel).
 
Pieter Joordens

Pieter Joordens

08/02/2008 22:23:00
Quote Anchor link
ik ken helemaal geen AJAX, en javascript een heel klein beetje, maar hoe zet ik dan een phphulp functie om in AJAX?

voorbeeld van een van de functies:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>";
    }
}

?>
 
Danny Roelofs

Danny Roelofs

08/02/2008 22:31:00
Quote Anchor link
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.
 
Pieter Joordens

Pieter Joordens

08/02/2008 22:38:00
Quote Anchor link
Ik heb het helemaal doorgelezen en ook de tutorial van w3schools.com, maar ik snap er nix van. kan iemand mij daarmee helpen?
 
Jan Koehoorn

Jan Koehoorn

08/02/2008 22:51:00
Quote Anchor link
Tuurlijk, wat wil je precies weten?
 
Pieter Joordens

Pieter Joordens

08/02/2008 22:53:00
Quote Anchor link
hoe ik dan met een zo'n AJAX request die php functie aan kan roepen, of die php functie om kan zetten in AJAX. Dat laatste zal waarschijnlijk niet gemakkelijk zijn omdat ik met mysql werk en heel die functie daarmee te maken heeft.

Maar alvast bedankt!

Quote:
edit: of hoe ik bij een click op die link toch die functie uit kan voeren.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if(!isset($sort)){
    $sort = "ByPowerAsc";
    function
sortByPower();
        
}

echo $results;
?>
Gewijzigd op 01/01/1970 01:00:00 door Pieter Joordens
 
Henk PHP

Henk PHP

09/02/2008 08:31:00
Quote Anchor link
Als je bijvoorbeeld een pagina met inhoud hebt die ajax.php heet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<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>


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
 
Pieter Joordens

Pieter Joordens

09/02/2008 11:22:00
Quote Anchor link
Oke, ik snap wat daar staat (ongeveer) maar hoe zet ik daar nu mijn php functies in of waar staan ze?
 
Joren de Wit

Joren de Wit

09/02/2008 11:29:00
Quote Anchor link
Met een AJAX request heb je de mogelijkheid een PHP script uit te voeren zonder dat je de pagina hoeft te herladen. In je request roep je dus een PHP script aan (ajax.php in het voorbeeld hierboven) waarin je bewerkingen met PHP kunt uitvoeren.

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.
 
Pieter Joordens

Pieter Joordens

09/02/2008 11:37:00
Quote Anchor link
Ik snap er egt helemaal nix meer van:S:S ik doe het wel gewoon met buttons ofzo... ik ken geen AJAX en ik heb eigelijk ook niet echt veel zin om me daarin te gaan verdiepen. Ik houd het wel bij php/html. toch bedankt!



btw.. is er een php functie die variabelen vernietigt?
Gewijzigd op 01/01/1970 01:00:00 door Pieter Joordens
 
Danny Roelofs

Danny Roelofs

09/02/2008 12:32:00
Quote Anchor link
http://nl2.php.net/unset
Gewijzigd op 01/01/1970 01:00:00 door Danny Roelofs
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.