command php via JS
Nu zoek ik een manier om ook in php dudielijk te maken dat de hele div visible is en ik dus in de database de status kan wijzigen (> gelezen).
Hier heb ik php nodig, en ik vind niet direct de correcte manier om deze te combineren...
Kijk eens naar 'Ajax'.
Maar ik gerakak er niet uit hoe je bij onclick die naar JS verwijst toch die phpcommand erin zet.
- Je maakt een PHP-pagina, die een mailbericht op gelezen kan zetten, ID van het mailbericht staat in $_GET['id']. Deze pagina krijgt verder geen lay-out etc., dit is genoeg.
- Je zult moeten kiezen tussen 'handmatig' AJAXen, of een framework als Prototype of MooTools gebruiken. Voordeel van handmatig is dat je puur maakt wat je nodig hebt. Voordeel van een framework is dat het lekker simpel is, en het cross-browser werkt.
- Dan moet je een AJAX-aanroep in de functie zetten die ook de div open laat gaan.
Tutorial over AJAX Prototype MooTools
Form :
Je Ajax request :
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
function markRead(message_id)
{
new Ajax.Request("markRead.php",{
postBody : "?message_id="+message_id ,
onComplete : function()
{
alert("Bericht als gelezen gemarkeerd") ;
}
}
)
}
{
new Ajax.Request("markRead.php",{
postBody : "?message_id="+message_id ,
onComplete : function()
{
alert("Bericht als gelezen gemarkeerd") ;
}
}
)
}
En markRead.php
Code (php)
1
2
3
4
2
3
4
<?php
$query = "UPDATE berichten SET read=1 WHERE message_id=".$_POST["message_id"] ;
mysql_query($query) ;
?>
$query = "UPDATE berichten SET read=1 WHERE message_id=".$_POST["message_id"] ;
mysql_query($query) ;
?>
Dit is het idee wat jij zoekt. Wel even aanpassen naar je eigen situatie maar dit zou je aardig op weg moeten helpen als je voor prototype kiest.
Neem het niet 1 op 1 klakkeloos over maar kijk ook even naar dingen als beveiliging en dergelijken want dat zit er (zoals overduidelijk is :P) nog niet in
mvg,
Jacco
PS: Druk-,zet- en typfoten voorbehouden
Gewijzigd op 01/01/1970 01:00:00 door Jacco Engel
dit staat in site.js:
function update_dropbox(id){
new Ajax.Request("dropboxx.php",{
postBody : "?id="+id
}
);
}
dat wordt opgeroepen door de jsfunction die het laat open schuiven.
Als ik enkel een alert in zet werkt het, dus doorstroom is ok.
dit is dropboxx.php
Code (php)
1
2
3
4
2
3
4
<?php
$query = "UPDATE dropbox SET Status = 0 WHERE DropID='".$_POST["id"]."'";
mysql_query($query);
?>
$query = "UPDATE dropbox SET Status = 0 WHERE DropID='".$_POST["id"]."'";
mysql_query($query);
?>
het doet gewoon niets, er komt onderaan de pagina steedfs: fout op pagina.
Gewijzigd op 01/01/1970 01:00:00 door maks
Request is met een kleine r
Ik heb trouwens in tutorials enzo ook al met hoofdletter gezien.
trouwens al andere versies (bv met method: get) getest en ze werken allemaal niet. Een server heeft toch niets speciaal nodig voor die ajax.request?
nee, je server niet. ajax bestaat uit javascript en een andere programmeertaal. het is dus allemaal afhankelijk van de browser. Heb je wel de prototype librairy gedownload? Deze moet je laden anders weet je browser niet wat de functie new Ajax.Request inhoud!
EDIT: ok te snel gereageerd, is een .js doc. even zien at dat geeft...
EDIT2: het werkt! Aleen moest het niet ?id= zijn maar zonder die ?. dus gewoon id=
Bedankt allemaal!
Gewijzigd op 01/01/1970 01:00:00 door maks