Toon posts:

[php/javascript] Waardes javascript doorgeven volgende pagin

Pagina: 1
Acties:

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
de situatie is als volgt, er zijn en aantal pagina's waarop een gebruiker informatie (nummers) ik kan vullen, en die moeten vervolgens worden opgeslagen in een php sessie. De informatie wordt door de gebruiker opgegeven doormiddel van het verslepen van een slider op basis van jquery.

Mijn probleem is nu dus dat ik de waardes (die dus in javascript variabelen staan) op de één of andere manier op wil slaan in de php sessie, terwijl php voor het versturen van de pagina al wordt uitgevoerd. Nu lijken mij twee mogenlijkheden:

- steeds bij het aanpassen van de sessie de pagina vernieuwen, waardoor php bij het vernieuwen kan kijken of er een nieuwe waarde is en die dan vervolgens in de sessie opslaan, maar dan refreshed de pagina steeds waardoor dit niet geschikt is.

- de waardes via de url doorgeven (dus eigenlijk via GET), en dan bij het openen van de volgende pagina uitlezen en in de sessie opslaan

ik wilde dus gewoon voor de tweede oplossing, maar dan krijg je weer van die lelijke urls, dus heb ik via de RewriteRule de Get waardes onzichtbaar gemaakt, maar dan kan ik ze direct ook niet meer uitlezen via php. Is er nog een andere oplossing die beter geschikt is?

  • Joolee
  • Registratie: Juni 2005
  • Niet online
Je kan die waardes toch gewoon via een ajax request opsturen en opvragen?

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 16-05 22:53
Je zou kunnen overwegen om je slider waardes m.b.v. javascript in een cookie te steken.
Zodra je naar een andere pagina navigeert wordt die cookie met je http request meegestuurd en zou PHP de waardes er uit moeten kunnen halen en wegschrijven in de sessie.

Als deze waardes alleen clientside nodig zijn, dan volstaat alleen een cookie eigenlijk al. Voor ondersteunende browsers kun je dan zelfs nog iets als sessionStorage uit de HTML5 Web Storage specification implementeren en de cookie als fallback hanteren.

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 14:13
R4gnax schreef op zaterdag 12 maart 2011 @ 03:00:
Je zou kunnen overwegen om je slider waardes m.b.v. javascript in een cookie te steken.
Zodra je naar een andere pagina navigeert wordt die cookie met je http request meegestuurd en zou PHP de waardes er uit moeten kunnen halen en wegschrijven in de sessie.

Als deze waardes alleen clientside nodig zijn, dan volstaat alleen een cookie eigenlijk al. Voor ondersteunende browsers kun je dan zelfs nog iets als sessionStorage uit de HTML5 Web Storage specification implementeren en de cookie als fallback hanteren.
Waarom zo lastig? Op het moment dat je slider veranderd de nieuwe waarde via ajax naar de server versturen en als je dan een andere pagina opent/refreshed (wizzard??) heb je de data al.

Strava | Twitter | Mastodon.nl


  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
ik ben erg nieuw met ajax, en kom er niet helemaal uit hoe je dit dan kan realiseren. Hoe moet ik de waarde naar de server versturen, via een sessie?

ik kan namelijk nergens zoiets op het internet vinden.

[Voor 16% gewijzigd door huub8 op 12-03-2011 12:56]


  • MueR
  • Registratie: Januari 2004
  • Laatst online: 09:04

MueR

Moderator Devschuur®

is niet lief

Anyone who gets in between me and my morning coffee should be insecure.
Breng nu uw applicatie naar de kloot. Dat is veel beter! Nu samen met klootopslag. Voor maar €9,95. Doei doei!


  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
die link had ik uiteraard ook al wel gezien, maar ik snap niet hoe ik het vervolgens in ene sessie krijg.

  • Blaise
  • Registratie: Juni 2001
  • Niet online
Je verstuurt met Ajax informatie naar een PHP pagina, waar je het vervolgens in je sessie opslaat.

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
dus je maakt in die php pagina waar je de gegevens naar verstuurd een stukje code dat de post waardes in een sessie opslaat? (sorry voor de vele vragen, maar ik zie door de bomen het bos niet meer wat betreft de antwoorden die ik op google kan vinden)

[Voor 33% gewijzigd door huub8 op 12-03-2011 14:17]


  • ReseTTim
  • Registratie: Juni 2000
  • Laatst online: 01-06 13:51

ReseTTim

Chocolate addicted

huub8 schreef op zaterdag 12 maart 2011 @ 14:16:
dus je maakt in die php pagina waar je de gegevens naar verstuurd een stukje code dat de post waardes in een sessie opslaat? (sorry voor de vele vragen, maar ik zie door de bomen het bos niet meer wat betreft de antwoorden die ik op google kan vinden)
hoeveel php ervaring heb je? naar mijn idee niet veel en maak je door het gebruik van mooie url's het voor jou alleen maar moeilijker.. ik zou zeggen begin eerst met lelijke url's kijk hoe het werkt en daarna voort boorduren..

maar om antwoord op jou vraag te stellen. Je doet met jquery een post naar een php pagina waar je inderdaad de waarde opslaat. het zij in een sessie, het zij in een database of je vraagt gegevens op dmv jquery..

tip: json, jquery ;)

Mijn profiel - Te koop: Overzicht van spullen..


  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
ik heb het script nu zo goed als werkend, maar ik blijf zitten met een probleem waarvan ik niet in zie wat er mis gaat. Het gaat om het volgende stukje code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        <script type="text/javascript">
        function loadXMLDoc(variablename, value)
        {
            var xmlhttp;
            if (window.XMLHttpRequest)
            {// code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp=new XMLHttpRequest();
            }
            else
            {// code for IE6, IE5
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            var url = 'save-results.php?' + variablename + '=' + value;
            xmlhttp.open("GET",url,true);
            xmlhttp.send();
        }
        </script>


dat wordt aangeropen door de volgende regel:
loadXMLDoc("leningmetrente", value);

maar helaas werkt dit niet, dat wil zeggen dat ik de get waarde niet kan opvragen in de save-results.php pagina. het werkt echter perfect als ik niet ene variabele gebruik voor variablename, maar een vaste string, zo dus:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        <script type="text/javascript">
        function loadXMLDoc(variablename, value)
        {
            var xmlhttp;
            if (window.XMLHttpRequest)
            {// code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp=new XMLHttpRequest();
            }
            else
            {// code for IE6, IE5
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            var url = 'save-results.php?' + 'leningmetrente' + '=' + value;
            xmlhttp.open("GET",url,true);
            xmlhttp.send();
        }
        </script>



edit:

ik heb de fout toch zelf gevonden, het lag namelijk aan iets kleins ergens anders in de code, dat niet erg makkelijk te vinden was doordat alleen refreshen niet voldoende bleek te zijn om de nieuwe code uit te laten voeren.

[Voor 6% gewijzigd door huub8 op 12-03-2011 17:11]


  • thioz
  • Registratie: September 2001
  • Laatst online: 06-11-2018
Waarom niet gewoon de simpelste oplossing hanteren en de waarden van de sliders in een hidden form field stoppen en die gewoon posten naar de volgende pagina en ze daar in de sessie zetten ?

Je hebt dan geen last van overdadig veel http calls via ajax en een oplossing die makkelijk herbruikbaar is.

I feel like i've been taking crazy pills


  • Yoozer
  • Registratie: Februari 2001
  • Laatst online: 10-01 12:25

Yoozer

minimoog

huub8 schreef op vrijdag 11 maart 2011 @ 22:53:
Mijn probleem is nu dus dat ik de waardes (die dus in javascript variabelen staan) op de één of andere manier op wil slaan in de php sessie, terwijl php voor het versturen van de pagina al wordt uitgevoerd. Nu lijken mij twee mogenlijkheden
Als het hier een soort wizard-formulier achtige constructie betreft kun je ook gewoon overwegen om die waardes naar onzichtbare inputs weg te schrijven die je vervolgens gewoon POST. Zo heb je elke volgende stap wel een page refresh, maar dat lijkt me niet onoverkomelijk. Sterker nog, je kunt het ook in 1 pagina zetten en gewoon met JS elk stuk van het form gedeeltelijk zichtbaar maken.

Vervolgens op de submit-knop nog een event hangen dat de waarden van je speciale controls uitleest, en hop.

edit: moet sneller typen. :(
huub8 schreef op zaterdag 12 maart 2011 @ 15:45:
ik heb het script nu zo goed als werkend, maar ik blijf zitten met een probleem waarvan ik niet in zie wat er mis gaat. Het gaat om het volgende stukje code:

code:
1
// code for IE7+, Firefox, Chrome, Opera, Safari
Waarom moet je zelf met dit soort dingen aan de slag als jQuery die functionaliteit al out of the box voor je aanbiedt? Het hele idee van een JS framework is dat het die browser-checks en uitzonderingen al voor je doet omdat het al geabstraheerd is.

[Voor 27% gewijzigd door Yoozer op 15-03-2011 09:10]

teveel zooi, te weinig tijd


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 13:54

RM-rf

1 2 3 4 5 7 6 8 9

zelfs AJAX hiervoor gebruik vind ik eigenlijk onzin, als het om één variabele met waarde gaat (en die waarde snel kan veranderen bij handelingen van de gebruiker, zonder dat dat voor de server nog veel betekent)...

Dan past er gewoon dé techniek die er oorspronkelijk voor ontwikkeld is het beste bij en dat is de aloude Cookie.

Voor veel mensen is dat misschien erg oud en sindsidien zijn er veel 'hippere' dingen in gebruik gekomen (nl. het 'synchroniseren van gegevens tusen client en server via Ajax), anderszijds is gewoon de Cookie juist voor dit soort 'state' informatie die vooral lokaal van belang is uitgedacht..
zolang er dus geen direkte noodzaak is van synchronisatie met de server zou ik variabele en hun (wisselende) waardes gewoon lokaal in een cookie opslaan, is veel simpeler en vergt niet continue verkeer tussen server en client.

[Voor 7% gewijzigd door RM-rf op 15-03-2011 09:52]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee