login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Hoe maak ik die link

Offline PieterM - 18/11/2013 15:38
Avatar van PieterMNieuw lid Ik heb een website gemaakt waarbij ik via een link een popupvenster open.
Dit gebeurd dmv een JQuery script. Er opent dus eigenlijk geen nieuw venster, maar een nieuwe DIV over de bestaande pagina heen.
De bestaande pagina bestaat uit een aantal logo's van bedrijven die uit een database gehaald worden. D.m.v. een uniek ID nummer dat aan ieder logo hangt wil ik informatie over desbetreffend bedrijf zichtbaar maken in het popup venster. Het is dus een venster waar steeds een ander ID nummer in de link bepaald wat de inhoud gaat worden van de popup.
De link werkt op het moment dat de variabele ID er niet in staat goed, maar ik weet niet hoe ik deze link kan aanpassen dat voor ieder bedrijf de juiste informatie zichtbaar wordt.
Ik hoop dat ik het een beetje duidelijk heb kunnen weergeven en jullie me kunnen helpen?

1 antwoord

Gesponsorde links
Offline Thomas - 18/11/2013 15:47 (laatste wijziging 21/11/2013 18:14)
Avatar van Thomas Moderator Je zou met AJAX (heeft jQuery ook uitgebreid gereedschap voor) een PHP-script kunnen aanroepen die de HTML teruggeeft met specifieke logo's (op grond van id). Afhankelijk van beveiliging / afscherming van informatie (mag bedrijf met id X popup-informatie zien van bedrijf Y of mag een anonieme partij dit script rechtstreeks aanroepen zonder identificatie van wie dit is) moet dit script aan meer eigenschappen voldoen. AJAX is uitermate geschikt voor het "on-the-fly laden van dynamische content".

EDIT: werkend voorbeeld.

De pagina met de "inline popup div" (test.ajax.htm):
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <script src="/pad/naar/jouw/jquery.js" type="text/javascript"></script>
  3. <style type="text/css">
  4. <!--
  5. div#contentDiv { width: 500px; height: 200px; border: 1px solid #ff0000; }
  6. //-->
  7. </head>
  8.  
  9. <div>
  10. <a href="?company=1" class="contentClick">company 1</a>
  11. <a href="?company=2" class="contentClick">company 2</a>
  12. <a href="?company=3" class="contentClick">company 3</a>
  13. </div>
  14. <div id="contentDiv">Hier wordt de company-content in geladen</div>
  15.  
  16. <script type="text/javascript">
  17. //<![CDATA[
  18. $().ready(function() {
  19. $('a.contentClick').click(function(e) {
  20. e.preventDefault(); // voorkom standaard klikafhandeling (volg de link waarop is geklikt niet)
  21. $.ajax({ // voer een AJAX-request uit met de volgende instellingen (dit is standaard een GET-request)
  22. 'url': 'test.ajax.php'+$(this).attr('href'), // plak de querystring van de link vast aan de link waar het AJAX-request naartoe wordt gestuurd
  23. 'dataType': 'html', // het type content wat je terugkrijgt is HTML
  24. 'success': function(data) { // functie die uitgevoerd moet worden na het succesvol uitgevoerde request, data is de data (HTML) die je terugkrijgt
  25. $('div#contentDiv').html(data); // vul de company-div met de HTML die je terugkrijgt
  26. }
  27. });
  28. });
  29. });
  30. //]]>
  31. </body>
  32. </html>


PHP-script voor afhandeling AJAX-calls (test.ajax.php):
  1. <?php
  2. // je kunt de werking van dit script goed testen door deze rechtstreeks aan te roepen met ?company=X
  3. // maar normaal doe je dit dus alleen via AJAX-requests
  4. // houd er wel rekening mee dat dit script rechtstreeks te benaderen is, ook door kwaadwillenden!
  5. // normale "best practises" zoals "filter input, escape output" zijn dus nog steeds -zoals in elk script- van kracht
  6.  
  7. // controles / initialisatie
  8. if (isset($_GET['company']) && is_numeric($_GET['company'])) {
  9. $companyId = $_GET['company'];
  10. } else {
  11. $companyId = 0;
  12. }
  13.  
  14. // output buffering, niet per se nodig, maar wel handig, geen gezever met (het escapen van) quotes en echo's
  15. // simulatie van queries op een database o.i.d. (bestaande bedrijven: 1, 2 en 3, rest is onbekend)
  16. switch ($companyId) {
  17. case 1:
  18. ?><h1>Company 1</h1><?php
  19. break;
  20. case 2:
  21. ?><h2>Company 2</h2><?php
  22. break;
  23. case 3:
  24. ?><h3>Company 3</h3><?php
  25. break;
  26. default:
  27. ?><i>Bedrijf niet gevonden</i><?php
  28. }
  29. // druk de HTML in de output buffer af op het scherm
  30. ?>
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.2s