login  Naam:   Wachtwoord: 
Registreer je!
 Forum

AJAX (i.c.m. PHP) - Toevoeg- en verwijderfunctie

Offline RobinG - 11/10/2007 17:12 (laatste wijziging 11/10/2007 17:22)
Avatar van RobinGNieuw lid Ik ben een tijd aan het stoeien geweest met AJAX, om de door mij ontwikkelde webshop wat gebruiksvriendelijker te maken. Ik heb eigenlijk al m'n geschreven AJAX-scripts weer overboord gegooid, ik kom er namelijk niet uit.

Uiteindelijk is de bedoeling vrij simpel, ik moet twee AJAX-functies tot stand brengen.

Toevoegfunctie

Ik heb een productenlijst, waarbij een product op de volgende manier aan de winkelwagen kan worden toegevoegd:


  1. <form method="POST" action="nieuwitem.php" name="aantal" id="aantal">
  2. <input type="hidden" id="product" name="product" value="<? echo $id_product; ?>">
  3. <input type="text" id="aantal" name="aantal" value="1" maxlength="2" size="5">
  4. <input type=\"submit\" name=\"submit\" id=\"submit\" value=\"Toevoegen\"></form>



Dat werkt allemaal, hetzelfde geldt voor het script dat onder 'nieuwitem.php' valt. Het formulier wordt simpelweg uitgelezen, en aan de hand daarvan wordt de winkelwagen gevuld met een nieuw item.
Dat gaat mij allemaal te langzaam en te gebruiksonvriendelijk. Ik heb dus een AJAX-functie nodig die de parameters als hierboven gegeven naar nieuwitem.php stuurt, zonder dat de client daadwerkelijk wordt doorgestuurd naar die pagina, zodat hij simpelweg door kan gaan met winkelen.


Verwijderfunctie

Eigenlijk geldt exact hetzelfde voor de delete-functie.


  1. echo "<a href=\"deleteprwi.php?product=$prodid&bestelling=$id_bestelling&status=$status1\">Delete</a>";




Dit werkt ook perfect, het item wordt op deze wijze eenvoudigerwijs verwijderd uit de winkelwagen. En voor de smart-asses onder ons, ook al verstuur ik het met GET, het is onmogelijk de URL te manipuleren, er zit een uitgebreid authenticatiescript in deleteprwi.php. ;)

Maar de vraag is dus duidelijk; hoe kan ik die bewerking (het verwijderen van een product uit de winkelwagen) met AJAX uitvoeren?



Ik heb op internet gezocht naar scripts en tutorials die me zouden kunnen helpen, maar ik ben er niet veel wijzer van geworden.

Iemand?

Bij voorbaat dank!

stijn1989 schreef:
Gelukkig dat ik er nog ben om code tags te zetten hé 

1 antwoord

Gesponsorde links
Offline cloudstrife - 11/10/2007 18:38
Avatar van cloudstrife PHP beginner Als je een deftige tutorial doorneemt en uittest weet je toch hoe ajax werkt? En wat je hier vraagt is gewoon die basis kennis toepassen want meer komt er niet bij kijken.

Nu ja:

Je hebt je xmlhttp object dat je gebruikt voor je ajax functies:

  1. function ajaxFunction()
  2. {
  3. var xmlHttp;
  4. try
  5. {
  6. // Firefox, Opera 8.0+, Safari
  7. xmlHttp=new XMLHttpRequest();
  8. }
  9. catch (e)
  10. {
  11. // Internet Explorer
  12. try
  13. {
  14. xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  15. }
  16. catch (e)
  17. {
  18. try
  19. {
  20. xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  21. }
  22. catch (e)
  23. {
  24. alert("Your browser does not support AJAX!");
  25. return false;
  26. }
  27. }
  28. }
  29. }


En je hebt dan het stuk waar je dat object gebruikt om gegevens naar de server te sturen en terug te krijgen:

  1. xmlHttp.onreadystatechange=function()
  2. {
  3. if(xmlHttp.readyState==4)
  4. {
  5. document.myForm.time.value=xmlHttp.responseText;
  6. }
  7. }
  8. xmlHttp.open("GET","test.php",true);
  9. xmlHttp.send(null);


Dit laatste stukje zet je gewoon in een functie die je bv met onclick aan roept, je kan eventueel je id van wat je wil verwijderen meegeven in die functie en bij de open("GET","test.php",true);
ga je dan gewoon de url ingeven naar waar je de data verstuurd en daar kan je dan in je url die id ook mee geven door die er aan te plakken bv open("GET","test.php"+varid,true);

Alles wordt verzonden en je krijgt bij die onreadystate == 4 terug wat je php script als output geeft, in uw geval kan dat zijn, item succesvol verwijderd of gewoon een soort indicatie die aangeeft dat het verwijderd is.

Zoals je ziet vrij basic-stuff dus met een klein beetje zoeken en testen van simpele dingen geraak je er zeker wel.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.187s