login  Naam:   Wachtwoord: 
Registreer je!
 Forum

jquery callback fout? (Opgelost)

Offline roy - 16/10/2008 15:37 (laatste wijziging 07/12/2008 14:11)
Avatar van royPHP gevorderde Beste allemaal,

Ik ben bezig met het maken van een cms gebasseert op jQuery.

Hier onder staat de code(twee functie waar het om draait), daarna zal ik aangeven wat er fout gaat.

function getAjaxRequest(type, obj){

  1. jQuery.post("../../include/service.php", // URL
  2. obj, // Object
  3. function(data){
  4. if (type == 'menu') {
  5. buildMenu(data);
  6. }
  7. if (type == 'overview') {
  8. //alert(1);
  9. buildOverview(data);
  10. }
  11. if (type == 'interface') {
  12. buildInterface(data);
  13. }
  14.  
  15.  
  16.  
  17. }, "json" // Callback
  18. );
  19. }

bovenstaande functie haalt JSON op en roept de juiste functie aan om dit te verwerken.

  1. function buildOverview(data){
  2. var html = '';
  3. html += '<a href="#" onclick="return false;" title="Nieuw" id="newItem"><img src="/img/new_page-32.png" /></a><a href="newFolder" onclick="return false;" title="Nieuwe map" id="newFolder"><img src="/img/folder_add-32.png"/></a><hr/>';
  4. html += '<div class="newItem">';
  5. html += '<form method="post" action="">';
  6. html += '<label>Nieuw item:</label><input name="addItem" type="text"><br />';
  7. html += '<input id="addItem" type="submit" onclick="return false;" value="verzend" />';
  8. html += '</form>';
  9. html += '</div>';
  10. html += '<div class="newFolder">';
  11. html += '<form method="post" action="">';
  12. html += '<label>Nieuwe map:</label><input name="addFolder" type="text"><br />';
  13. html += '<input id="addFolder" type="submit" onclick="return false;" value="verzend" />';
  14. html += '</form>';
  15. html += '<hr>';
  16. html += '</div>';
  17. html += '<table class="tablesorter" id="sorter">';
  18. html += '<thead>';
  19. html += '<tr>';
  20. html += '<th>Type</th>';
  21. html += '<th>Id</th>';
  22. html += '<th>Title</th>';
  23. html += '<th>Gemaakt</th>';
  24. html += '<th>Acties</th>';
  25. html += '</tr>';
  26. html += '</thead>'
  27. html += '<tbody>';
  28. jQuery.each(data, function(i, item){
  29. if (item.isagroup == 'true') {
  30. html += '<tr>';
  31. html += '<td class="image"><img alt="folder" src="/img/folder-16.png"/></td>';
  32. html += '<td class="id">' + item.id + '</td>';
  33. html += '<td class="title">' + item.title + '</td>';
  34. html += '<td class="created">' + item.created + '</td>';
  35. html += '<td><a href="http://www.startpagina.nl/" title="Edit"><img src="/img/page_edit-16.png"/></a><a id="deleteFolder" onclick="return false" href="' + item.id + '" title="Delete"><img src="/img/delete-16.png"/></a></td>';
  36. html += '</tr>';
  37. }
  38. else {
  39. html += '<tr>';
  40. html += '<td class="image"><img alt="page" src="/img/new_page-16.png"/></td>';
  41. html += '<td class="id">' + item.id + '</td>';
  42. html += '<td class="title">' + item.title + '</td>';
  43. html += '<td class="created">' + item.created + '</td>';
  44. html += '<td><a href="http://www.startpagina.nl/" title="Edit"><img src="/img/page_edit-16.png"/></a><a href="/{$url.1}/delete/{$item.id}/" title="Delete"><img src="/img/delete-16.png"/></a></td>';
  45. html += '</tr>';
  46. }
  47. });
  48. html += '</tbody>';
  49. html += '</table>';
  50.  
  51. jQuery('#port2').html(html);
  52. jQuery("#sorter").tablesorter();
  53. }

Bovenstaande functie bouwt het overzicht.

  1. getAjaxRequest('overview', params);


Zo wordt de functie aangeroepen.


Wat er gebeurd is het volgende:
Er wordt twee keer achter elkaar de POST uitgevoerd. de eerste keer gaat het goed en komt het juiste terug. de tweede keer wordt de POST uitgevoerd met geen parameters en gaat het dus fout.

Nu is de vraag, waarom wordt de POST twee keer uitgevoerd en niet gewoon 1 keer?



Hopelijk weet iemand wat er fout gaat, of kan iemand zeggen hoe het anders kan maar dan goed.

Roy

9 antwoorden

Gesponsorde links
Offline Kr4nKz1n - 16/10/2008 15:39
Avatar van Kr4nKz1n Onbekend
Citaat:
Wil je het in werking zien?
http://www[dot]cms[dot]rdekleijn[dot]nl
?

Moeten we nu eerst dat gaan ontrafelen om jou te kunnen helpen?
Offline roy - 16/10/2008 15:44 (laatste wijziging 07/12/2008 14:11)
Avatar van roy PHP gevorderde sorry,




Wilde alleen voorkomen dat de website dan steeds nutteloos in de google resultaten terug te vinden is.
Offline Kr4nKz1n - 16/10/2008 15:51
Avatar van Kr4nKz1n Onbekend Gehe dat gaat dus niet door 
Offline roy - 16/10/2008 15:53
Avatar van roy PHP gevorderde blijkbaar, maar terugkomend op mijn probleem...
Offline marten - 16/10/2008 15:56
Avatar van marten Beheerder En als je de afhandeling gaat tracken (firebug bv) ?
Welke logica zit er in?

Wordt de functie 2x aangeroepen. Gebeurt er in de functie zelf iets dubbel?
Offline roy - 16/10/2008 16:31 (laatste wijziging 17/10/2008 17:04)
Avatar van roy PHP gevorderde nee dat is het gekke juist.

je ziet het volgende:
ik haal de JSON op en beslis welke functie er moet worden aangeroepen.

Hij bouwd het overzicht en toont dat.

maar dan komt ie op 1 of andere manier terug in de data functie en probeert nog een overzicht te maken, maar dan leeg.

ziet iemand wat er fout gaat???
Offline Stijn - 17/10/2008 17:10
Avatar van Stijn PHP expert Wat staat er in je service.php? Wordt die jquery.post() niet ergens anders opgeroepen (een event bijvoorbeeld)?
Offline roy - 17/10/2008 17:16 (laatste wijziging 19/10/2008 14:39)
Avatar van roy PHP gevorderde service.php roept de juiste functie aan, haalt data uit de database en geeft JSON terug.

Zie de website, er is maar 1 event dat het request aanroept.

ik denk te weten wat er fout gaat.
Hoe kan je voorkomen dat de functie terug gaat naar de plek waar die werd aangeroepen?

  1. function getAjaxRequest(type, obj){
  2.  
  3. $.post("../../include/service.php",
  4. obj, // Object
  5. function(data){
  6. if (type == 'menu') {
  7. buildMenu(data);
  8. }
  9. if (type == 'overview') {
  10. //alert(1);
  11. buildOverview(data);
  12. }
  13. if (type == 'interface') {
  14. buildInterface(data);
  15. }
  16. }, "json"
  17. );
  18. }


Hier roep ik hem aan. Hij voert overview wel uit, maar keert daarna terug in de data functie. Waar en hoe kan ik dat voorkomen, want dat is niet de bedoeling..

Heeft iemand een idee??
Offline BramBo - 20/10/2008 12:44
Avatar van BramBo JS gevorderde hoe bedoel je, hij keert terug in de data functie ?

Verder lijkt het me beter om if, else if, else if te gebruiken ipv 3x if.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.209s