[php / ajax] ajax request wordt niet doorgegeven

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • skate master
  • Registratie: September 2004
  • Laatst online: 18:34

skate master

Autodesk Educator Expert

Topicstarter
Voor een website maak ik gebruik van het lightbox systeem om foto's weer te geven.
Info over lightbox
Deze lightbox maakt gebruik van het prototype JavaScript Framework Klik hier voor de prototype website
Mijn idee was nu om in de lightbox een functie te maken welke bij houd hoevaak een foto is weergegeven.
Hiervoor dacht ik een functie te gebruiken met daarin een ajax request, echter krijg ik van het
script elke keer de melding "Something went wrong..."
Hieronder de functie welke de klik naar een php bestand stuurt welke de database bijwerkt en vervolgens de nieuwe stand returnt.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/// stuur foto id naar php en krijg nieuwe stand terug
function getKliks(bestand,idee){
    new Ajax.Request(bestand,
  {
    method:'get',
    parameters:'?id='+idee,
    onSuccess: function(transport){
      var response = transport.responseText || "no response text";
      return response;
    },
    onFailure: function(){ alert('Something went wrong...') }
  });
}

/// het aanroepen van de functie binnen de lightbox functie.
// aantal kliks hier
var getal = eval(activeImage);
var kliks = getKliks('klikteller.php',imageId[getal]);
                   
Element.setInnerHTML( 'imageKliks', kliks );


In het php bestand staat momenteel niet meer dan
PHP:
1
2
3
<?
echo "Testje";
?>

dus hier kan het niet aan liggen volgens mij.

Wanneer ik alles binnen de functie getKliks wijzig in
return "Testje";
Dan functioneert het naar behoren.

De XMLHttpRequest connectie wordt door het prototype framework verzorgt via het ajax.request(....)
Dus deze hoef ik naar mijn mening niet op nieuw te maken.

Ik heb ook al geprobeerd om zelf een XMLHttpRequest te maken en dan de data naar php te sturen, echter ook dit werkt niet.

Via de prototype documentatie en google ben ik er niet uit gekomen, en nu ben ik dus hier met mijn vraag.

Waarom werkt de functie niet, en krijg ik telkens de fout melding?
De data welke naar de functie wordt gestuurd is ok, de php file bestaat en het pad is ook goed.
Wie o wie heeft de oplossing?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Je weet waar de A van AJAX voor staat? Dan weet je dus ook dat zodra je een dergelijke asynchrone call gaat doen, dat je dan never nooit niet die return value op deze manier zult gaan ontvangen :)

Acties:
  • 0 Henk 'm!

  • skate master
  • Registratie: September 2004
  • Laatst online: 18:34

skate master

Autodesk Educator Expert

Topicstarter
Erkens schreef op dinsdag 12 juni 2007 @ 21:49:
Je weet waar de A van AJAX voor staat? Dan weet je dus ook dat zodra je een dergelijke asynchrone call gaat doen, dat je dan never nooit niet die return value op deze manier zult gaan ontvangen :)
Zou je dan ook kunnen aangeven hoe het WEL moet.
Hier kan ik niet veel mee.

Acties:
  • 0 Henk 'm!

  • Graaf
  • Registratie: Oktober 2001
  • Laatst online: 20-03-2024

Graaf

blup

Je zou in je getKliks functie het een en ander aanpassen zodat ie bij de onSuccess de transport.responseText in de innerHTML zet van je Element.

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

skate master schreef op dinsdag 12 juni 2007 @ 21:51:
[...]

Zou je dan ook kunnen aangeven hoe het WEL moet.
Hier kan ik niet veel mee.
Als je daar weinig mee kan dan ligt dat toch echt aan jou hoor? Nooit gehoord dat zelfstudie beter is en dat een kleine tip hier en daar beter is dan het constant voor gekauwd te krijgen? Ik mag hopen dat je met developen niet je brood moet verdienen :X

Acties:
  • 0 Henk 'm!

  • skate master
  • Registratie: September 2004
  • Laatst online: 18:34

skate master

Autodesk Educator Expert

Topicstarter
Graaf schreef op dinsdag 12 juni 2007 @ 21:57:
Je zou in je getKliks functie het een en ander aanpassen zodat ie bij de onSuccess de transport.responseText in de innerHTML zet van je Element.
Heb het even geprobeerd, maar dit lost niets op.
Volgens mij komt hij helemaal niet bij onSuccess, maar gaat hij direct naar onFailure.

@Erkens
Vanwaar die reactie.
Ik vraag toch niet om een script, je had mij ook net als Graaf een duidelijk richting kunnen aangeven.
Van kijk eens naar dit of dat. Maar direct beginnen te roepen over voor kauwen en geld verdienen met developpen vind ik een beetje raar.

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Sorry hoor, maar dit zijn gewoon echt basic dingen, zeker aangezien "AJAX" zo hot is dezer dagen, tig duizend voorbeeld scripts, je toont gewoon geen inzet en negeert mijn _wel_ nuttige post, ik geef aan waar het probleem zit en met slechts een klein beetje inzet en kennis zou je dus kunnen komen op het "antwoord" wat Graaf poste.

Daarnaast vraag je wel degelijk naar een (stukje) script, zelfs letterlijk:
Zou je dan ook kunnen aangeven hoe het WEL moet.
Maargoed, hulp is tegenwoordig bljikbaar alleen gewenst als je een "eindproduct" voorgeschoteld krijgt ipv daadwerkelijk hulp. Ik geef enkel en alleen antwoord op jouw vraag:
Waarom werkt de functie niet

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Tja, als je wel weet wat asynchroon inhoudt en wat de gevolgen zijn had je met dat antwoord voldoende gekund. En als je het niet weet, moet je het opzoeken. ;)
'Let op dat je asynchroon communiceert' is het beste antwoord dat je kon krijgen. :) Nu zoek je uit en leer je waarom een andere aanpak nodig is en daarmee verkrijg je niet alleen een werkend script, maar ook meer kennis. :)

{signature}


Acties:
  • 0 Henk 'm!

Verwijderd

Erg leerzame link

hier heb ik de basics geleerd, verder googlen :P

Oh, and by the way je begint meestal met text transport maar ik wil graag adviseren om xml als intermediar te gebruiken ipv plain text. Zo hoef je minder op de server te doen en je kunt de data makkelijker ordenen in Javascript.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 19:17

crisp

Devver

Pixelated

Verwijderd schreef op woensdag 13 juni 2007 @ 09:59:
Oh, and by the way je begint meestal met text transport maar ik wil graag adviseren om xml als intermediar te gebruiken ipv plain text. Zo hoef je minder op de server te doen en je kunt de data makkelijker ordenen in Javascript.
XML is over het algemeen toch behoorlijk heavy als je enkel wat strings heen en weer wilt slingeren. Ik ben zelf wel fan van JSON :)

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

True crisp, maar ik wil meestal toch wel extra informatie meesturen aan het script en vind het in het algemeen een elegantere manier om dom-elementen te bouwen met javascript.

Verder heb ik mij nog nooit echt verdiept in JSON, zover ik weet is dit gewoon een alternatief op XML/text transport.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 19:17

crisp

Devver

Pixelated

Verwijderd schreef op woensdag 13 juni 2007 @ 10:18:
True crisp, maar ik wil meestal toch wel extra informatie meesturen aan het script en vind het in het algemeen een elegantere manier om dom-elementen te bouwen met javascript.

Verder heb ik mij nog nooit echt verdiept in JSON, zover ik weet is dit gewoon een alternatief op XML/text transport.
Uiteraard, XML is ook maar een data-transport formaat. Het voordeel van JSON is dat het veel makkelijker en sneller is om te zetten naar een native javascript object waar je voor XML toch behoorlijk omslachtig moet doen (DOM iteraties).

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

Toch maar een keer kijken dan maar ;)

Maar nu ik zelf javascript beter beheers ga ik de jquery library gebruiken, weet niet welk formaat deze gebruikt maar volgensmij staat dat open.
Pagina: 1