Login Retreive lost passwordRegister
Search

Forum Index / NL Forum / Meerdere selects koppelen aan 1 select

[ This topic is unsolved! ]

  Marien 19 May 09 / 14:05  
Ha,

Ik wil graag het volgende doen:

<?php
include('./class.FormHandler.php');

$form = new FormHandler();
$form->selectField('Test 1','test1',array(1,2));
$form->selectField('Test 2','test2',array(2,3));
$form->selectField('Test 3','test3',array(3,4));

$form->linkSelectFields('./test2.php','test1','test2');
$form->linkSelectFields('./test2.php','test1','test3');

$form->flush();
?>


Wat er terug komt is in dit voorbeeld niet relevant. Ik wil dus 2 select velden zijn waardes laten laden op basis van de eerste select veld. Hij laad met dit voorbeeld altijd de laatste. En de ander niet.

Wat ook erg handig zou kunnen zijn (en mij zou helpen door een 'snel' formulier te maken) is om van te voren alle data te laden in de velden en dan aan de hand van 1 selectbox zijn waarde in de andere select boxen een andere waarde te laten selecteren.

Waarom ik dit wil?
Ik ben bezig om presets te laden in een formulier. Dus als je een preset selecteert moeten bestaande select boxen op een bepaalde waarde gaan staan (en het liefst 'gedisabled/readmode' worden).

Ik laad nu de select boxen opeenvolgend. En via meerdere waardes als veld waardes het oorspronkelijk geselecteerd veld meegeven. En als het een preset is laad ik maar 1 waarde. Niet echt het gedrag wat ik zoek.

  Johan Wiegel (Admin) 19 May 09 / 14:32  
Ha Marien,

dan moet je toch even zelf met AJAX aan de slag.

Onze ervaring is dat dergelijke toepassingen zo specifiek zijn dat ze niet in FormHandler thuis horen.

We hebben zelf dergelijke oplossingen wel gemaakt, maar daar nooit een generiek iets in gevonden.

Johan

  Marien 19 May 09 / 14:43  
Is het koppelen van meerdere selects aan 1 select niet generiek dan? Alleen dat zou mij ontzettend helpen. En ik denk dat dat gewoon zonder veel aanpassingen gedaan kan worden.

  Johan Wiegel (Admin) 19 May 09 / 15:02  
probeer eens:

$form->linkSelectFields('./test2.php','test1','test2','test3' );

dan wordt test3 gekoppeld aan de wijziging in test2, dat zit er wel in.

Anders moet je echt zelf maken, hebben nu geen tijd voor FH ontwikkeling.

Nee, meerdere velden op 1 wijziging heb ik nog nooit via FH willen doen.
Dan zit er altijd zoveel maatwerk in dat het niet in FH thuis hoort.

  Marien 19 May 09 / 16:31  
Changed at 19 May 09 / 16:35
Na even goed de code te hebben bestudeerd zit er een ongedocumenteerde functie in linkSelectFields welke extra velden kan meesturen naar het DynamicOptions veld.

Code:
<?
$form 
= new FormHandler();
$form->selectField('Test 1','test1',array(1,2));
$form->selectField('Test 2','test2',array(2,3));
$form->selectField('Test 3','test3',array(3,4));

$form->linkSelectFields('./test2.php',array('test1','test1'),'test2');
$form->linkSelectFields('./test2.php',array('test2','test1'),'test3');

$form->flush();
?>


Of:
<?

$form
->linkSelectFields('./test2.php',array('test1','test1'),array('test2','test1'),'test3');
?>


Door er een array van te maken word er naar de tweede waarde gekeken en als die veldnaam bestaat word dat veld zijn waarde als een extra POST argument meegestuurd. Als het veld niet bestaat word het als extra tekst erachter geplakt (in de JS)

Dit lost dus mijn probleem (gedeeltelijk) op.

Lijkt mij wel een idee om dit te documenteren.

  Top


powered by PHP-GLOBE   © 2004 - 2024 FormHandler. All rights reserved.   -   Open source license