[PHP & JS] Dynamisch forms vullen met DB info

Pagina: 1
Acties:

  • Funcracker
  • Registratie: Juni 2001
  • Laatst online: 28-04 18:17

Funcracker

The LedZ Collective

Topicstarter
Ik wil een heel simpel formuliertje maken waarbij een gebruiker in een ddbox eerst een Table aanklikt, waarna een 2de ddbox wordt gevuld met de bijbehorende velden van die table.

Dit kan uiteraard niet zonder JS, maar evengoed heb ik PHP nodig om beide boxjes te vullen. De eerste is geen probleem, maar de vraag is hoe ik de tweede vul, zodra er in de eerste iets is geselecteerd.

Een lelijke workaround is om met JS een window te openen, daarin een PHP script te laden, en vervolgens daarmee de fields op te halen en die via JS terug te geven aan zijn moederdocument. Hierna sluit het popupwindow zich weer en is de 2de ddbox gevuld.. Maar ik hoop dat dit ook netter kan.

I am one hell of a guy, I can do anything I want, only I just don't have the faintest idea what.
Zaphod Beeblebrox, in The Hitch Hiker's Guide To The Galaxy


  • Macros
  • Registratie: Februari 2000
  • Laatst online: 24-08 21:59

Macros

I'm watching...

Ik denk dat het alleen kan door in de html alle kolommen van alle tabellen te zetten en dan dmv JS alleen diegene te tonen die die persoon wil zien.

"Beauty is the ultimate defence against complexity." David Gelernter


  • Funcracker
  • Registratie: Juni 2001
  • Laatst online: 28-04 18:17

Funcracker

The LedZ Collective

Topicstarter
Op woensdag 24 juli 2002 14:09 schreef Macros het volgende:
Ik denk dat het alleen kan door in de html alle kolommen van alle tabellen te zetten en dan dmv JS alleen diegene te tonen die die persoon wil zien.
Is ook een manier, maar dat wil ik eigenlijk niet.. Het moet wel lekker snel blijven :) En bovendien krijg ik dan een hele zwik aan layers.

I am one hell of a guy, I can do anything I want, only I just don't have the faintest idea what.
Zaphod Beeblebrox, in The Hitch Hiker's Guide To The Galaxy


  • ddofborg
  • Registratie: Augustus 2000
  • Laatst online: 26-02 09:52
je kunt een form_actie uitvoeren, waarbij de eerte waarde naar zichzelf wordt vezonden (dus met action="$PHP_SELF").

die dezelfde file (waar je je form hebt) moet je aan de boven kant een if-statement bouwen...
PHP:
1
<?if($REQUEST_METHOD == "POST"){/* hier komt DB code om waarde voortweede *//* ddbox te vullen */}?>

hier na gaat het tekeken van de rest van de form

*edit*
ik weet niet of het een beetje duidelij is... ik moet zo weg, dus geen tijd om uitgebreid te vertellen... misschien als ik terug ben

  • Funcracker
  • Registratie: Juni 2001
  • Laatst online: 28-04 18:17

Funcracker

The LedZ Collective

Topicstarter
Op woensdag 24 juli 2002 14:13 schreef ddofborg het volgende:
je kunt een form_actie uitvoeren, waarbij de eerte waarde naar zichzelf wordt vezonden (dus met action="$PHP_SELF").

die dezelfde file (waar je je form hebt) moet je aan de boven kant een if-statement bouwen...
[..]
hier na gaat het tekeken van de rest van de form

*edit*
ik weet niet of het een beetje duidelijk is... ik moet zo weg, dus geen tijd om uitgebreid te vertellen... misschien als ik terug ben
Ik denk dat ik je begrijp, maar dan laad ik in principe 2 keer het HTML scherm. Wat de gebruiker ook zal merken (geen breedband :)) Dat maakt het al een stuk minder mooi..
(Ja.. ik ben veeleisend :P)

I am one hell of a guy, I can do anything I want, only I just don't have the faintest idea what.
Zaphod Beeblebrox, in The Hitch Hiker's Guide To The Galaxy


  • Macros
  • Registratie: Februari 2000
  • Laatst online: 24-08 21:59

Macros

I'm watching...

Het is of alles al clientside opslaan en dan super snel schakelen dmv JS. Of alleen overzenden wat je nodig hebt op dat moment maar dat zal altijd een HTML request opleveren wat de gebruiker altijd merkt.
Als de tabellen niet al te groot zijn zal optie 1 best aantrekkelijk zijn. Ziet er altijd wel cool uit. Als je er gzip compressie overheen gooit zal de pagina ook redelijk snel laden.

"Beauty is the ultimate defence against complexity." David Gelernter


  • ddofborg
  • Registratie: Augustus 2000
  • Laatst online: 26-02 09:52
Op woensdag 24 juli 2002 14:18 schreef Funcracker het volgende:

[..]

Ik denk dat ik je begrijp, maar dan laad ik in principe 2 keer het HTML scherm. Wat de gebruiker ook zal merken (geen breedband :)) Dat maakt het al een stuk minder mooi..
(Ja.. ik ben veeleisend :P)
..ik denk dat ik jou nu ook begrijp...

dat moet je voordat je een pagina bouwd als uit de database je informatie hebben gehaald.

en als je in dropdownbox (DDB) item 1 kiest (met onChange-event kun je kijken of er iets is veranderd in de selectie) dan moet iets in je 2de DDB laten veranderen (of opnieuw opbouwen met andere waarden ofzo...)

maar wel deel kun je niet maken? uitlezen uit DB? of een 'goede' JS maken?

  • Funcracker
  • Registratie: Juni 2001
  • Laatst online: 28-04 18:17

Funcracker

The LedZ Collective

Topicstarter
Op woensdag 24 juli 2002 14:25 schreef ddofborg het volgende:

[..]

..ik denk dat ik jou nu ook begrijp...

dat moet je voordat je een pagina bouwd als uit de database je informatie hebben gehaald.

en als je in dropdownbox (DDB) item 1 kiest (met onChange-event kun je kijken of er iets is veranderd in de selectie) dan moet iets in je 2de DDB laten veranderen (of opnieuw opbouwen met andere waarden ofzo...)

maar wel deel kun je niet maken? uitlezen uit DB? of een 'goede' JS maken?
Beide kan ik maken :)
Maar ik wil dus dat PHP pas iets uit de DB leest als in de eerste DDB iets is geselecteerd. Vervolgens wil ik zonder de HTML page te herladen deze data teruggeven aan JS, die de form dynamisch uit kan breiden.

Dat op een na laatste stapje lukt me niet. Vanuit PHP terug naar JS.

I am one hell of a guy, I can do anything I want, only I just don't have the faintest idea what.
Zaphod Beeblebrox, in The Hitch Hiker's Guide To The Galaxy


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Je zult ALTIJD 1 of andere request moeten doen om de data te verkrijgen. Dit kan zoals eerder vermeld door alles al mee te sturen bij het eerste request, maar dat zorgt voor een erg grote pagina. Het kan ook door een request te doen zodra er een selectie is gemaakt uit de eerste ddbox. In dat geval zul je altijd iets moeten 'herladen'. Je zou ipv een popup ook een klein iframe kunnen gebruiken.

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


  • Funcracker
  • Registratie: Juni 2001
  • Laatst online: 28-04 18:17

Funcracker

The LedZ Collective

Topicstarter
Op woensdag 24 juli 2002 14:36 schreef Janoz het volgende:
Je zult ALTIJD 1 of andere request moeten doen om de data te verkrijgen. Dit kan zoals eerder vermeld door alles al mee te sturen bij het eerste request, maar dat zorgt voor een erg grote pagina. Het kan ook door een request te doen zodra er een selectie is gemaakt uit de eerste ddbox. In dat geval zul je altijd iets moeten 'herladen'. Je zou ipv een popup ook een klein iframe kunnen gebruiken.
:( Moet dat echt... Damn.. Ik had gehoopt dat er wel een manier was om dat te omzeilen.. Hmm.. dat zal dan maar moeten... Bedankt voor jullie reacties mensen!

I am one hell of a guy, I can do anything I want, only I just don't have the faintest idea what.
Zaphod Beeblebrox, in The Hitch Hiker's Guide To The Galaxy


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Je kan ook gebruik maken van het XML object om data te laden. Helaas is me dat alleen gelukt met IE.

Programmer - an organism that turns coffee into software.

Pagina: 1