Hoe kan ik het beste jQuery combineren met php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marco Eilander

Marco Eilander

11/06/2017 12:32:14
Quote Anchor link
Hallo,

Ik heb een foreach(), en daar wil ik jQuery binnen gebruiken.
nu zit ik het volgende probleem:
Als ik 10x op de eerste regel van de foreach() klik, opent de jQuery dialog 10x met in ieder dialog verschillende namen. Ik maak ook gebruik van een tabel.

Hoe kan ik dit oplossen en wat is de beste manier om te maken?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.js"></script>

<script type="text/javascript">
$(window).load(function(){
$("#test").click(function() {
    $("#dialog").dialog({ show: 'fade', hide: 'drop' });
});
 });
</script>


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
foreach($data as $row)
{
echo '
<tr id="test" data-player-name="'.$row['username'].'">
    <td><img src=images/'.$avatar.' ??/></td>
    <td>'.$row['username'].'</td>
    <td>'.$row['rank'].'</td>
</tr>';
}

echo '
<div id="dialog"><h3>'.$row['username'].'</h3>
';
//include('test.php');

echo '</div>';    


- Ariën -:
Typfout uit titel gehaald
Gewijzigd op 11/06/2017 12:48:01 door - Ariën -
 
PHP hulp

PHP hulp

27/11/2024 11:33:04
 
- Ariën  -
Beheerder

- Ariën -

11/06/2017 12:44:11
Quote Anchor link
jQuery is clientside, en PHP is serverside.
Als je een request doet om een pagina te bekijken, wordt eerst PHP uitgevoerd, waarna de browser op zijn beurt de HTML en JavaScript uitvoert.

Als je dus data uit PHP op wilt halen zul je moeten kijken naar AJAX. Dit kan met de $.ajax(), $.post() en $.get() functie in jQuery. Als je data uit PHP wilt ophalen om deze asynchroon in te laden (vooral zeer ideaal voor externe servers waarbij je niet lang wilt wachten) dan moet je die data serverside tot bijv. een makkelijk geformat JSON-feed vormen.

Onthoud wel dat AJAX een middel is, en geen doel. ;-)
 
Marco Eilander

Marco Eilander

11/06/2017 12:48:22
Quote Anchor link
Bedankt! Ik zal het eens proberen. :)
 
- Ariën  -
Beheerder

- Ariën -

11/06/2017 12:48:59
Quote Anchor link
Prima, succes. Als je vragen hebt, dan horen we het wel :)
 
Ivo P

Ivo P

11/06/2017 14:23:39
Quote Anchor link
een id moet uniek zijn. In een foreach opnemen <tr id="test"> kan tot onverwachte resultaten leiden.
De ene browser houdt het na het vinden van het eerste element voor gezien (er kan er immers maar 1 zijn) terwijl een ander vrolijk verder zoekt.

Beter is het om bijvoorbeeld een class op te nemen. Daarmee voorkom je in je eigen scripting ook dat je uitgaat van $('#test') gaat 1 element vinden, en je er toch 10 laat reageren.
 
Thomas van den Heuvel

Thomas van den Heuvel

11/06/2017 17:54:00
Quote Anchor link
Wat @Ivo zegt, je kunt een id niet meerdere keren (her)gebruiken, een id moet uniek zijn. Het gebruik van een class kan hier uitkomst bieden.

Eventueel zou je hier nog een container (div oid) met een id omheen kunnen zetten om het gebied waarbinnen de click-functionaliteit actief zou moeten zijn af te bakenen. Dit id zou je dan op kunnen nemen in je selector, in combinatie met de class.

Voor een grafisch effect (althans hier lijkt het op?) voor een pagina die alle informatie al ingeladen heeft is in principe geen AJAX nodig.
 



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.