Inloggen
Username:
Password:



Password vergeten?
Menu
Home
Forums
Wiki
Script Library
Forum tracker
RSS Feed
Sponsoren
Vacature plaatsen

Aanmelden
Huisregels
Vereniging

Adverteren
Disclaimer
Zoeken

In:
Aantal leden
PHPFreakz kent momenteel 50394 geregistreerde leden.
Opties
Printversie
JavaScript & PHP
JavaScript & PHP
door Martijn Korse

Dit artikel is erg verouderd en bevat misschien onjuiste informatie. Kijk op de wiki voor nieuwere artikelen.
Als je in je site veel gaat doen met PHP, MySQL én JavaScript, loop je onherroepelijk een keer tegen het probleem aan dat je eigenlijk in je javascript nog even in je database wilt gaan kijken. Ik tenminste wel. Dit artikel zal meer over JavaScript dan over PHP of MySQL gaan, maar dacht dat het toch nuttig zou kunnen zijn omdat meer PHPers hier wellicht tegen aanlopen. Anyways,...

De situatie is als volgt:
Ik heb een database met een tabel met persoongegevens (naam, adres, etc) en een aantal andere tabellen met nog wat uitgebreidere informatie. Deze gegevens kunnen worden gelinkt via een uniek ID die ieder persoon heeft. Nu heb ik een aantal formulieren, sommigen waarvan ook de persoongegevens weer moeten worden ingevoerd. Wat handig zou zijn, is dat als je het ID invoert, dat dan in de overige velden automatisch de persoonsgevens komen te staan. (gebruikers gemak)
In JavaScript kan dat in principe met een onChange, die er voor zorgt dat als de waarde van een invoerveld verandert, andere invoervelden ook moeten veranderen. Probleem :

  • Die gegevens staan nog in een database en daar kunnen we zonder herladen van de pagina niet meer bij.
  • Je zou die gegevens bij het laden van de pagina allemaal al in een ‘JavaScript array’ kunnen stoppen, zodat het al in JavaScript bekend is, maar dat wordt ondoenlijk bij teveel records (2 of 3 zal nog gaan, maar boven de 10 wordt het al zeuren denk ik).
  • Je zou in je onChange het formulier kunnen laten submitten (als het formulier naar zichzelf verwijst), zodat de pagina opnieuw geladen wordt en de waarde in je post bekend is. Voordat je het formulier weergeeeft kun je dan met die waarde eerst de persoonsgegevens gaan bepalen. Alleen hoe maak je duidelijk dat de actie die normaal uitgevoerd moet worden bij het submitten (bijvoorbeeld het sturen van een e-mail met daarin de waardes) niet moet worden uitgevoerd? Dan zou je daar een extra optie voor in moeten bouwen (een checkbox die je aan- of uitvinkt), maar da’s ook niet echt elegant.

    Dat JavaScript heeft dus eigenlijk toegang nodig tot een stukje php code, wat lost staat van die pagina, wat door de server verwerkt kan worden en wat ‘m vertelt wat die waardes zijn die in de overige velden moeten worden ingevoerd.
    Ik kwam tot de conclusie dat dat natuurlijk prima te doen is door een frameset te maken! De onChange laadt een filetje in het andere frame, met achter de filename in de url een variabele met een waarde (vb.: iets.php?var=val) - die waarde is dan natuurlijk de waarde die net ingevoerd is in het formulier. En als die persoongegevens dan eenmaal zijn bepaald door PHP (en MySQL), dan kunnen die weer dmv een javascriptje worden ingevoerd in het andere (oorspronkelijke) frame (dat het formulier bevat). De oplossing ...... Leuk ...... maar als echte PHP Freak heb je natuurlijk net als ik een bloedhekel aan dat lelijke javascript met al z’n punten en meer van die ellende en gaat het je minimaal een paar uur kosten om uit te zoeken hoe dat allemaal moet. Dus, om jullie die ergernis te besparen ga ik hieronder even met een hapklaar voorbeeld uitleggen hoe dat moet.

    | 1 | 2 | 3 | Volgende »

  • Commentaar op dit artikel
    TitelDoorDatum
    AJAX, the key to success M E 27-06-2006 15:40
    RE: ik ben een beginner Martijn Korse 17-04-2006 19:52
    ik ben een beginner valere brouns 16-04-2006 16:29
    RE: RE: <select> listbox vullen met <option>'s Jan van der Ploeg 08-03-2005 12:21
    RE: <select> listbox vullen met <option>'s Martijn Korse 05-03-2005 15:06
    <select> listbox vullen met <option>'s Jan van der Ploeg 04-03-2005 20:54
    sorry jongens lowel pimpernel 28-12-2004 22:53
    selectielijst onmiddellijk value verzenden lowel pimpernel 28-12-2004 22:47
    RE: RE: RE: mysql query Bart van Heukelom 01-12-2004 20:38
    RE: RE: mysql query daan snijders 01-12-2004 19:50
    RE: mysql query Bart van Heukelom 29-11-2004 16:46
    TOEVOEGING: je zegt iets wat niet klopt Bart van Heukelom 29-11-2004 16:45
    je zegt iets wat niet klopt Bart van Heukelom 29-11-2004 16:44
    mysql query daan snijders 27-11-2004 08:32
    objectgeorienteerd programeren Ed van Hek 17-10-2004 00:34
    RE: Artikeltje Marc Spr 19-08-2003 14:44
    IE5.0 bug crisp 31-05-2003 00:17
    RE: XML Sturen Martijn Korse 08-04-2003 02:07
    XML Sturen GJ Lubbertsen 07-04-2003 18:30
    Ook Mozilla Martijn Korse 06-04-2003 03:41
    Mijn arikeltje GJ Lubbertsen 29-03-2003 16:17
    RE: Artikeltje Martijn Korse 29-03-2003 15:58
    Artikeltje GJ Lubbertsen 29-03-2003 14:03
    RE: RE: RE: Jawel Martijn Korse 18-03-2003 13:10
    RE: RE: Jawel Patrick van Dissel 18-03-2003 12:29
    RE: Jawel Martijn Korse 18-03-2003 10:48
    Jawel GJ Lubbertsen 18-03-2003 10:36
    RE: RE: RE: Betere mannier Martijn Korse 17-03-2003 21:24
    RE: RE: Betere mannier GJ Lubbertsen 17-03-2003 19:21
    RE: Betere mannier Martijn Korse 15-03-2003 17:24
    Betere mannier GJ Lubbertsen 13-03-2003 19:40
    maar weer eens een reactie van de author Martijn Korse 24-01-2003 20:05
    Late reactie Michiel Papenhove 24-01-2003 18:58
    RE: RE: RE: RE: RE: Wat een ranzige oplossing Guido ::Marktman.nl:: 24-12-2002 15:50
    Overzicht ?> Chris Groenendijk 18-12-2002 15:48
    Vette site Michael Slof 10-12-2002 21:54
    Toch een best wel goed artikel...... Wouter rrrrrr 10-11-2002 01:06
    RE: RE: RE: RE: Wat een ranzige oplossing R L 08-11-2002 14:41
    RE: RE: Wat een ranzige oplossing Ben Rutten 04-11-2002 14:59
    RE: Wat een ranzige oplossing frickY 01-11-2002 11:57
    generieke(re) oplossing Joost Joost 21-06-2002 15:31
    RE: RE: RE: Wat een ranzige oplossing Martijn Korse 31-05-2002 03:02
    RE: RE: Wat een ranzige oplossing 2 30-05-2002 18:36
    RE: Wat een ranzige oplossing Martijn Korse 28-05-2002 00:35
    Wat een ranzige oplossing 2 27-05-2002 22:48
    RE: RE: Betere technieken Wim Paulussen 24-05-2002 10:04
    RE: Drop Down Martijn Korse 14-05-2002 12:30
    Drop Down David Nagels 10-05-2002 15:54
    RE: Betere technieken Mark Stunnenberg 07-05-2002 13:38
    RE: Ifram Luc Franken www.tentoday.com 29-04-2002 18:39
    RE: Ifram Martijn Korse 19-04-2002 15:14
    Ifram Thijs Haarhuis(www.prownet.nl) 18-04-2002 14:17
    RE: hoe te gebruiken met arrays? Martijn Korse 05-04-2002 12:39
    hoe te gebruiken met arrays? Michiel Boertje 28-03-2002 11:26
    RE: RE: Heel nuttig artikel! Martijn Korse 25-03-2002 18:10
    RE: RE: Heel nuttig artikel! rudie dirkx 25-03-2002 16:58
    RE: Heel nuttig artikel! rudie dirkx 25-03-2002 16:57
    Uitgangspunt vooraf TeeJee 05-03-2002 11:44
    RE: ahh te gek verhaal Martijn Korse 01-03-2002 18:22
    ahh te gek verhaal D j 27-02-2002 22:37
    Betere technieken Ruben Daniels 25-02-2002 15:53
    RE: ROFFFFFFFFFFFFFFL Martijn Korse 19-02-2002 12:22
    ROFFFFFFFFFFFFFFL Marijn Wijbenga 14-02-2002 16:16
    Heel nuttig artikel! R-NoLT 06-02-2002 22:41
    Zeer goed Valentijn van Driessen 06-02-2002 20:15
    Recente topics
    Website layout hu...
    selecteer tekst t...
    Weergaven form in...
    Website Hulp gezocht
    Refresh na invoeren.
    Weeknummers selec...
    jquery table sort...
    Meerdere menu's i...
    jQuery slide content
    HTML SELECT met 2...
    TCPDF geeft é nie...
    session_id(); > b...
    Nieuwe regel
    Variabele analyseren
    heleboel foutmeld...
    Recente Wiki's
    JavaScript: High Performance
    MagicQuotes
    Escapen
    Datamanipulatie
    RabbitVCS
    Continuous integration
    Apache Veilig Maken
    Charactersets
    Het Wiel Uitgevonden:Formulieren
    XSD

    Meer wiki ...
    Recente Scripts
    Unieke `random` n...
    twitterPHP 0.1 (a...
    CSS minifier
    PINI - PHP >>INI<...
    Sudoku [StateSolver]
    base64 file encoder
    Session class

    Meer scripts ...
    Gehost door
    RedKnot Hosting