[php] onchange event toewijzen aan var

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Longlegg
  • Registratie: Januari 2002
  • Laatst online: 13-04-2022

Longlegg

Danoontje POWERRRRR

Topicstarter
Ik wil graag als ik een waarde verander in een listbox, dat deze waarde gelijk wordt toegewezen aan een $_session variable.

ik heb nu dit:

<select name="ruimte" id="ruimte" onChange="<?php $_SESSION['ruimte']= this.selected;?>">
<option value="1">1</option>
<option value="2">2</option>
enz enz

hij geeft dus dus idd als letterlijke waarde "this.selected", hoe krijg ik het nu voorelkaar dat ie 1 of 2 geeft ?

heb al gezocht op google, zonder resultaat..

Specs


Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 14:31
session-vars kan je alleen vanuit PHP zetten, niet vanuit HTML. Eerst dus submitten, en dan uit de $_POST de sessie-var zetten.

Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Kan ook niet op deze manier. Je wilt nu met client-side scripting (javascript) een server-side variabele aanpassen. Dit zal nooit lukken, aangezien de server-side eerst volledig uitgevoerd wordt.

Oplossing is een pagina-refresh, of misschien dat je de waarde in een cookie kunt zetten met javascript, en deze ophalen met php. Mijn vraag is echter; waarom wil je dit?

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 12:54
Jij haalt even twee dingen door elkaar, namelijk client-side en server-side scripting. PHP draait op een server en genereerd eerst helemaal een pagina. Als je iest wilt wijzigen zul je eerst weer informatie naar een server moeten terug sturen, zodat die het weer kan wijzigen.

Waar jij op uit bent is een client-side oplossing door middel van JavaScript, deze code draait dus locaal op de pc van de bezoeker.

Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

Overigens vind ik het knap dat je verwacht dat een javascript iets ('this.selected') in PHP geparsed gaat worden.

Gelukkig kan javascript zelf wel met cookies overweg (en google vind ook met sessies, maar 't zijn allemaal prutsresultaten). Onthoud wel dat je eerst nog moet refreshen voordat zo'n cookie werkelijk ergens effect op heeft (in php that is).

[ Voor 18% gewijzigd door GX op 27-04-2005 12:18 . Reden: zonder t 8) ]


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 20-09 22:44

MBV

sessies zijn geen cookies. JS kan in een cookie schrijven, maar aangezien het een sessie is zal hij daar alleen een nummertje vinden. Je zou kunnen zorgen dat javascript die sessieID weet (ergens met PHP in de code zetten, of uit de cookie laten lezen), en dat je dan zoiets als dit aanroept: set_var.php?sessid=000000&value=10 . Daarmee kan je die waarde veranderen.
Of via SOAP en webservice en dat soort dingen

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Ik denk dat jij beter even de documentatie in kan duiken. ;)
Session support in PHP consists of a way to preserve certain data across subsequent accesses. This enables you to build more customized applications and increase the appeal of your web site.

A visitor accessing your web site is assigned an unique id, the so-called session id. This is either stored in a cookie on the user side or is propagated in the URL.
Bron: http://nl2.php.net/session

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • _DeWie_
  • Registratie: November 2001
  • Laatst online: 31-05 19:17
Als je echt moeilijk wil doen, of het is noodzakelijk kun je natuurlijk ook middels de onchange javascript event een xmlHTTPRequest doen en hiermee de sessie var zetten :)

Acties:
  • 0 Henk 'm!

Verwijderd

Of ook lelijk maar wel makkelijk : een onzichtbaar i-framepje refreshen met de getvariabelen ingesteld op jouw nieuwe wensen.

Acties:
  • 0 Henk 'm!

Verwijderd

-NMe- schreef op woensdag 27 april 2005 @ 21:26:
[...]

Ik denk dat jij beter even de documentatie in kan duiken. ;)

[...]
Niet om een welles-nietes reactie geven hoor :)
Er staat dus dat het session id wordt opgeslagen in een cookie (of wordt door gegeven via een url). Leid jij hieruit af dat een cookie gelijk is aan een session? Een session kan gewoon bestaan zonder dat er een cookie wordt opgeslagen. Het zijn dus verschillende dingen. Het principe van data bewaren is wel ongeveer gelijk.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op woensdag 27 april 2005 @ 23:27:
Niet om een welles-nietes reactie geven hoor :)
Er staat dus dat het session id wordt opgeslagen in een cookie (of wordt door gegeven via een url). Leid jij hieruit af dat een cookie gelijk is aan een session? Een session kan gewoon bestaan zonder dat er een cookie wordt opgeslagen. Het zijn dus verschillende dingen. Het principe van data bewaren is wel ongeveer gelijk.
Je hebt gelijk hoor, die cookie slaat alleen een id op, en dat id wordt op de server gelinkt aan de bijbehorende data. Staan cookies uit, dan wordt het idd via de querystring geregeld. De echte waarden van de sessie staan dus inderdaad niet in die sessie-cookie. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1