Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[AJAX] na form input doorsturen of bericht weergeven

Pagina: 1
Acties:

  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 14-09 15:52
Hallo ieder,

Ik ben bezig met het implementeren van OpenID in mijn site. Dit is zo goed als gelukt op het volgende probleem na.

Ik heb een formulier dat wordt verzonden en de responds moet de gebruiker, afhankelijk van de input, naar een andere pagina sturen of een error bericht laten zien op de huidige pagina. Nu is het probleem dat als ik dmv het prototype framework het formulier verstuur het bericht perfect op de huidige pagina wordt geplaatst. Maar nu weet ik niet of er een stuk html is dat tussen op deze manier op de pagina geplaatst kan worden zodat de pagina geforceerd wordt naar een andere pagina te gaan.

Ik heb dus geprobeerd een meta tag of een stuk JS terug te sturen, maar blijkbaar wordt dit niet geëvalueerd waardoor er dus niets gebeurd.

Hopelijk kan iemand helpen,
Dank!

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 08-10 13:03
code?
link?

eval lijkt me trouwens een goede oplossing. Je string wordt dan zoiets als

Server:
quote: php
$sReturn = 'window.location = "http://www.tweakers.net"'; //string to send back
Client
quote: javascript
eval(sReturn);

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Mark Wegener schreef op woensdag 03 oktober 2007 @ 02:45:
Hallo ieder,

Ik ben bezig met het implementeren van OpenID in mijn site. Dit is zo goed als gelukt op het volgende probleem na.

Ik heb een formulier dat wordt verzonden en de responds moet de gebruiker, afhankelijk van de input, naar een andere pagina sturen of een error bericht laten zien op de huidige pagina. Nu is het probleem dat als ik dmv het prototype framework het formulier verstuur het bericht perfect op de huidige pagina wordt geplaatst. Maar nu weet ik niet of er een stuk html is dat tussen op deze manier op de pagina geplaatst kan worden zodat de pagina geforceerd wordt naar een andere pagina te gaan.

Ik heb dus geprobeerd een meta tag of een stuk JS terug te sturen, maar blijkbaar wordt dit niet geëvalueerd waardoor er dus niets gebeurd.

Hopelijk kan iemand helpen,
Dank!
Javascript tags worden niet automagisch geparsed op het moment dat je ze via innerHTML in het document plempt. Als het goed is heeft prototype een evalScripts parameter voor je Ajax obect. Zo niet, moet je even naar die van MooTools kijken, die heeft dat wel :)

Stop uploading passwords to Github!


  • mithras
  • Registratie: Maart 2003
  • Niet online
Waarom niet gewoon na de response een check (wat je nu doet) en vervolgens in je code
JavaScript:
1
window.location = "http//domain.tld/newpage";

Je krijg dan bijv. iets als
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function sendXmlHttpRequest(uri){
    xmlHttp.open("GET",uri,true);
    xmlHttp.onreadystatechange = function() {
        if(xmlHttp.readyState==4) {
            handleXmlHttpRequest( xmlHttp.responseXML.documentElement );
        }
    }
    xmlHttp.send(null);
}

function handleXmlHttpRequest(xml){
  doSomethingWith(xml);
  if(iets)
    displayError();
  else
    window.location = "http//domain.tld/newpage";
}
Hoe je dit in prototype vertaalt weet ik niet, maar het lijkt me dat dit iets is wat het meest makkelijke in gebruik is :)

  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 14-09 15:52
SchizoDuckie schreef op woensdag 03 oktober 2007 @ 10:24:
[...]


Javascript tags worden niet automagisch geparsed op het moment dat je ze via innerHTML in het document plempt. Als het goed is heeft prototype een evalScript parameter voor je Ajax obect. Zo niet, moet je even naar die van MooTools kijken, die heeft dat wel :)
precies, that's it! prototype heeft een optie genaamd evalScripts, het enige dat wel wat vreemd is dat je het script moet retourneren als:


JavaScript:
1
2
3
4
5
6
7
8
9
<SCRIPT>
<!--
reload = function () {
window.location="http://google.com";
}

setTimeout('reload()',1000);
//-->
</SCRIPT>

[ Voor 1% gewijzigd door Mark Wegener op 03-10-2007 14:48 . Reden: code toegevoegd ]


  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 14-09 15:52
helaas werkt dit niet in IE7.

het probleem lijkt in de regel:
code:
1
window.location="http://google.com";

te zitten. als deze wordt vervangen door:
code:
1
alert ('text');

werkt het ook in IE7.

dus weet iemand een alternatief voor window.location voor een redirect?

  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 14-09 15:52
probleem zit in de timer, redirect = function ( window.location.. ) redirect() doet de trick.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 30-11 11:35

Janoz

Moderator Devschuur®

!litemod

Authenticatie en de daarvan afhankelijke autorisatie moet je nooit met javascript af gaan handelen. Voor wat ik nu kan zien is je implementatie zo lek als een mandje.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 14-09 15:52
Janoz schreef op woensdag 03 oktober 2007 @ 15:09:
Authenticatie en de daarvan afhankelijke autorisatie moet je nooit met javascript af gaan handelen. Voor wat ik nu kan zien is je implementatie zo lek als een mandje.
het is OpenID, en het is absoluut geen enkel geheim wat er op dat momenten verstuurd wordt.
Pagina: 1