Ik heb met JS iets gemaakt dat een Div open gaat als je op de eerste regel klikt. (soort van mailbox)

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'.
ja, maar ik krijg het niet voor elkaar, al een tijdje op zitten zoeken enzo.
Maar ik gerakak er niet uit hoe je bij onclick die naar JS verwijst toch die phpcommand erin zet.
Een 'takenlijstje':
- 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
Met prototype moet het ongeveer zo:

Form :

<div onClick="markRead(1)">Je input</div>


Je Ajax request :

function markRead(message_id)
{
	new Ajax.Request("markRead.php",{
		postBody : "?message_id="+message_id ,
		onComplete : function()
		{
			alert("Bericht als gelezen gemarkeerd") ;
		}
	}
	)
}


En markRead.php

<?php
	$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
ik heb wat zitten testen, maar krijg het niet werkend.
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

<?php
$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.
Request is met een kleine r
Dat zou wel heel simpel zijn.. dat is het dus niet.
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!
?? moet iedereen dat dan eerst installeren vooraleer ze het werkend kunnen zien?

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!

Reageren