[PHP] Resultaten met behulp van Onclick ophalen

Pagina: 1
Acties:
  • 557 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 11:09

Erhnam

het Hardware-Hondje :]

Topicstarter
Vanaf een pagina zou ik graag een aantal functie binnen een ander php script willen aanroepen.

Op de eerste pagina staan voornamelijk plaatjes en linkjes, met daarachter href's naar het php script dat aangeroepen moet worden.

De twee pagina is een php pagina die de verzoeken moet gaat verwerken. Vanaf de eerste pagina wordt dus een verzoek verstuurd. Het resultaat van de functie moet weer worden teruggegeven aan de eerste pagina. Dit alles moet gebeuren zonder dat de pagina ververst, om te voorkomen dat plaatjes opnieuw worden geladen.

Ik heb gelezen dat je dit het beste met jquery of ajax kan doen. Een voorbeeld probeer ik om te bouwen tot iets wat moet leiden tot het bovenstaande, maar dit lijkt lastiger dan in de eerste instantie gedacht. Wat is de juiste aanpak voor zoiets? Welke richting kan worden gezocht?

Voorbeeld index.html:

code:
1
2
3
4
5
6
7
8
9
10
11
12
<script type="text/javascript">
function recp(id) {
  $('#mijnpagina').load('data.php?id=' + id);
}
</script>

<a href="#" onClick="recp('1')">een</a>
<a href="#" onClick="recp('2')">twee</a>
<a href="#" onClick="recp('3')">drie</a>

<div id='mijnpagina'>
</div>


voorbeeld php:

code:
1
2
3
4
<?php 
  $id = $_GET['id'];
  echo $id;
?>

http://www.xbmcfreak.nl/


Acties:
  • 0 Henk 'm!

Verwijderd

Wat werkt er niet en welke foutmeldingen krijg je precies?

Mijn eerste gok zou zijn: include je de jquery file?

[edit]
Gebruik zelf altijd: javascript:void(0) ipv # maar dat zou in dit geval niet moeten uitmaken denk ik.

onClick = onclick

<div id='mijnpagina'> = <div id="mijnpagina">

[ Voor 77% gewijzigd door Verwijderd op 08-12-2010 00:38 ]


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Verwijderd schreef op woensdag 08 december 2010 @ 00:31:
Wat werkt er niet en welke foutmeldingen krijg je precies?

Mijn eerste gok zou zijn: include je de jquery file?

[edit]
Gebruik zelf altijd: javascript:void(0) ipv # maar dat zou in dit geval niet moeten uitmaken denk ik.

onClick = onclick

<div id='mijnpagina'> = <div id="mijnpagina">
Waarom zou dat javascript:void(0) moeten zijn? Dat zegt ook zo heerlijk veel wat het werkelijk doet... ;)
En ook <div id='mijnpagina'> of <div id="mijnpagina"> maakt met bijvoorbeeld HTML 4.01 niets uit, allebei is toegestaan. Met andere woorden: dat is jouw voorkeur.

[ Voor 13% gewijzigd door CH4OS op 08-12-2010 00:44 ]


Acties:
  • 0 Henk 'm!

  • Diecke
  • Registratie: December 2010
  • Laatst online: 20-09 11:27
je moet jquery wel in je <head> zetten

Acties:
  • 0 Henk 'm!

Verwijderd

CptChaos schreef op woensdag 08 december 2010 @ 00:43:
[...]
Waarom zou dat javascript:void(0) moeten zijn? Dat zegt ook zo heerlijk veel wat het werkelijk doet... ;)
Gebruik zelf altijd j:void als in "doe nix". lijkt me redelijk duidelijk is net zoiets als /dev/null en dat zegt een niet linux gebruiker ook niets.
En ook <div id='mijnpagina'> of <div id="mijnpagina"> maakt met bijvoorbeeld HTML 4.01 niets uit, allebei is toegestaan. Met andere woorden: dat is jouw voorkeur.
Wist ik niet...

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 19-09 11:12
Diecke schreef op woensdag 08 december 2010 @ 00:49:
je moet jquery wel in je <head> zetten
Je kan het ook gewoon net voor het sluiten van de </body> zetten, dat zal het probleem dan ook wel niet zijn. ;)

@TS:
Heb je Firefox geïnstalleerd, zo ja kijk dan even met Firebug naar je console. Van 99/100 gevallen staat daar de foutmelding wel waarom het script niet werkt.

Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

En de keuze tussen JQuery of Ajax is dezelfde keuze als een keuze maken tussen een vervoersmiddel of een auto. JQuery is een compleet framework, incl ajax. Ajax zelf is gewoon een techniek.

En idd: wat werkt er niet? Je code lijkt me prima, zou gewoon moeten werken (al ken ik de jquery.load functie niet. Maar ik neem aan dat die gewoon een HTTP request stuurt en het antwoord in de div plakt?)

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 11:09

Erhnam

het Hardware-Hondje :]

Topicstarter
Guillome schreef op woensdag 08 december 2010 @ 09:09:
En idd: wat werkt er niet? Je code lijkt me prima, zou gewoon moeten werken (al ken ik de jquery.load functie niet. Maar ik neem aan dat die gewoon een HTTP request stuurt en het antwoord in de div plakt?)
Ik krijg het resultaat (1,2 of 3) niet te zien in de div. Scherm blijft gewoon hetzelfde na het klikken op een van de linkjes. Het script heb ik in de head gezet. De rest in de body.

http://www.xbmcfreak.nl/


Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 19-09 11:12
Erhnam schreef op woensdag 08 december 2010 @ 10:39:
[...]


Ik krijg het resultaat (1,2 of 3) niet te zien in de div. Scherm blijft gewoon hetzelfde na het klikken op een van de linkjes. Het script heb ik in de head gezet. De rest in de body.
Kun je ons dan een testcase geven en het ook eens met Firebug bekijken? Want dit lijkt mij een hele simpele debugfout.

Acties:
  • 0 Henk 'm!

Verwijderd

En geen foutmeldingen?

Installeer Firefox met de dev-toolbar of Firebug en beginnen met testen.

Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Dat doet jquery.load dan precies?

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

  • TJHeuvel
  • Registratie: Mei 2008
  • Niet online
Erhnam schreef op woensdag 08 december 2010 @ 10:39:
[...]


Ik krijg het resultaat (1,2 of 3) niet te zien in de div. Scherm blijft gewoon hetzelfde na het klikken op een van de linkjes. Het script heb ik in de head gezet. De rest in de body.
Ga eens debuggen. Zoek wat foutmeldingen, en als deze nergens te vinden zijn is dat een teken dat er geen code wordt uitgevoerd. Ik neem aan dat je een PHP developer bent, maar je bent hier met Javascript bezig. Installeer eens een goede debugger en ga logisch na wat er nou mis kan gaan.
Controleer of de request uberhaupt gemaakt wordt, zoniet check of de onClick wel werkt. Zowel controleer of de respons wel correct is, en wat er verder mee gebeurt. Stap door je code heen om te begrijpen wat er gebeurd.
Ik heb gelezen dat je dit het beste met jquery of ajax kan doen.
Het is niet of/of. Ajax is een techniek waarmee je via javascript requests kan maken naar andere pagina's, jQuery is een library wat dit 'makkelijker' maakt.
En als je dan toch jQuery gebruikt kan je het beter helemaal gebruiken, dus probeer ook jQuery te gebruiken voor die onClick's. Je wilt sowiezo je HTML gescheiden van je CSS en Javascript hebben, nu zit je Javascript in je HTML.

[ Voor 4% gewijzigd door TJHeuvel op 08-12-2010 12:04 ]

Freelance Unity3D developer


Acties:
  • 0 Henk 'm!

  • ameesters
  • Registratie: Juni 2008
  • Laatst online: 05-01-2022
Quote kwakkeloos overgenomen van jquery docs:
Example: pass arrays of data to the server.
code:
1
$("#objectID").load("test.php", { 'choices[]': ["Jon", "Susan"] } );

Example: Same as above, but will POST the additional parameters to the server and a callback that is executed when the server is finished responding.
RTFM!

ik denk dat je deze wilt:
http://api.jquery.com/jQuery.get/

[ Voor 8% gewijzigd door ameesters op 08-12-2010 12:22 ]


Acties:
  • 0 Henk 'm!

Verwijderd

leipepo schreef op woensdag 08 december 2010 @ 12:08:
Quote kwakkeloos overgenomen van jquery docs:


[...]


RTFM!

ik denk dat je deze wilt:
http://api.jquery.com/jQuery.get/
En dit is anders dan de TS?

Acties:
  • 0 Henk 'm!

  • ameesters
  • Registratie: Juni 2008
  • Laatst online: 05-01-2022
hij gebruikt $_GET om zijn request te verwerken terwijl de load functie van jquery default POST gebruikt. dit had hij kunnen weten als hij(en jij) de manual had gelezen voordat er dingen werden geroepen!

Acties:
  • 0 Henk 'm!

Verwijderd

leipepo schreef op woensdag 08 december 2010 @ 12:28:
hij gebruikt $_GET om zijn request te verwerken terwijl de load functie van jquery default POST gebruikt. dit had hij kunnen weten als hij(en jij) de manual had gelezen voordat er dingen werden geroepen!
Ja en wat denk je dat die GET doet ?

hint: data.php?id=value

Acties:
  • 0 Henk 'm!

  • ameesters
  • Registratie: Juni 2008
  • Laatst online: 05-01-2022
prima, maar zonder $_POST gaat het gewoon niet werken, lees je maar es in over .load van jquery, en daarna over .get en .post, daarna wil ik je nog wel eens spreken...

Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

euh blackspot, lees eens goed wat leipepo zegt. Hij heeft gelijk hoor.
_GET != _POST

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

  • TJHeuvel
  • Registratie: Mei 2008
  • Niet online
Hij zet zelf de waarde in de url, waardoor het alsnog via GET wordt verstuurd ;)

Freelance Unity3D developer


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ik zou je willen aanraden om eens te gaan debuggen ( Programming FAQ - Algemeen ), en dus ook te kijken of je PHP wel word uitgevoerd.

Als dat niet het geval is dan is het een Javascript probleem en dat hoort niet in PRG thuis ( PRG Beleid )

In je TS geef je verder ook niet aan wat je allemaal al geprobeerd hebt, en dus sluit ik dit topic. Mocht je na debuggen nog steeds problemen hebben, dan kan je een nieuw topic openen ( In het juiste sub-forum ), maar hou je daarbij wel aan de Quickstart

[ Voor 34% gewijzigd door Woy op 08-12-2010 12:43 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

Verwijderd

leipepo schreef op woensdag 08 december 2010 @ 12:34:
prima, maar zonder $_POST gaat het gewoon niet werken, lees je maar es in over .load van jquery, en daarna over .get en .post, daarna wil ik je nog wel eens spreken...
http://erwinvandenbos.nl/jquery/

Aub.

Willen jullie het aub niet zo op de man spelen, is nergens voor nodig.

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
En idd wat Blackspot zegt: Laten we het hier wel gezellig laten

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1

Dit topic is gesloten.