Array leeg na post?
Maar als ik een fomulier opbouw dan word er een addElements functie gedaan waarbij een array word mee gestuurd
deze array bevat een paar elementen die ik wil gebruiken
maar als ik na de post even een var_dump($form->getElements()); doe is alles leeg?
terwijl ik toch echt een array zet tijdens het maken van het fomulier
$form->addElements(array($username,$password,$button));
hier onder een stukje code die dit moet doen
Code (php)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
include_once 'form/form.php';
try {
$form = new Form;
if($_SERVER['REQUEST_METHOD'] == 'POST') {
var_dump($form->getElements());
} else {
$username = new Form_Element('text');
$username->setLabel('Username');
$password = new Form_Element('password');
$password->setLabel('Password');
$button = new Form_Element('button');
$button->setLabel('Login');
$form->addElements(array($username,$password,$button));
echo $form->draw();
var_dump($form);
}
} catch (Exception $e) {
echo $e->getMessage();
}
?>
include_once 'form/form.php';
try {
$form = new Form;
if($_SERVER['REQUEST_METHOD'] == 'POST') {
var_dump($form->getElements());
} else {
$username = new Form_Element('text');
$username->setLabel('Username');
$password = new Form_Element('password');
$password->setLabel('Password');
$button = new Form_Element('button');
$button->setLabel('Login');
$form->addElements(array($username,$password,$button));
echo $form->draw();
var_dump($form);
}
} catch (Exception $e) {
echo $e->getMessage();
}
?>
de elementen komen netjes in beeld
maar waarom is de $elements dan leeg als ik de getter aanroep na de post?
Gewijzigd op 15/09/2011 12:23:11 door Robert dat ben ik
leesvoer php.net
zo als username en password hoef ik niet want dit staat in de $_POST
dat werkt prima
maar als ik tijdens het aanmaken van het fomulier een filter wil toevoegen bij de username object moet ik deze dus apart in een sessie opslaan?
is er echt geen andere mogelijkheid dan een sessie dan?
even kijken of ik jouw vraag goed begrijp. de code die je hierboven hebt, laat je zien op een website, die vul je in, en dan druk je op login, en dan kom je op een andere pagina waar je die array wil lezen?
het gaat hier om een filter
alleen deze zet ik al tijdens het maken van het object
bijvoorbeeld:
$username = new Form_Element('text');
$username->setLabel('Username')
->setFilter('NotEmpty'); <-----deze wil ik dus kunnen benaderen na de post
en het liefst zonder sessies :)
Gewijzigd op 15/09/2011 13:03:25 door Robert dat ben ik
je kan met php geen gegevens opvragen van een vorige pagina, zolang die niet met $_COOKIE $_SESSION of $_POST of $_GET zijn meegekomen, je zult dus een van deze moeten gebruiken, in jou geval is $_SESSION het handigst.
Of je voegt het aan de bestaande array toe, door middel van array_merge bijvoorbeeld. Of gewoon het volgende:
Nog een kleine tip, probeer zo weinig mogelijk gebruik te maken van public variabelen. Kies of protected of private. (Voorkeur gaat naar protected)
Gewijzigd op 15/09/2011 13:16:03 door Niels K
Victor - op 15/09/2011 13:07:47:
je kan met php geen gegevens opvragen van een vorige pagina, zolang die niet met $_COOKIE $_SESSION of $_POST of $_GET zijn meegekomen, je zult dus een van deze moeten gebruiken, in jou geval is $_SESSION het handigst.
misschien een stomme vraag,
maar is een xml file niet een mogelijkheid?
die bijvoorbeeld tijdelijk deze variables opslaat?
en na de post een Form_Post class aan roepen die deze gaat uitlezen en afhandelen?
Wat is jou probleem tegen $_SESSIONs?
Niels Kieviet op 15/09/2011 13:15:20:
Verder, klopt dit ook niet:
Of je voegt het aan de bestaande array toe, door middel van array_merge bijvoorbeeld. Of gewoon het volgende:
Of je voegt het aan de bestaande array toe, door middel van array_merge bijvoorbeeld. Of gewoon het volgende:
dit kreeg ik in deze topic van Pim: Topic
Ik zal het even veranderen bedankt voor de tip!
Toevoeging op 15/09/2011 13:56:32:
Victor - op 15/09/2011 13:52:46:
dat kan maar dan heb je bij elke inlog poging een xml file, en het is veel minder snel.
Wat is jou probleem tegen $_SESSIONs?
Wat is jou probleem tegen $_SESSIONs?
Ik heb niks tegen sessies hoor, maar kan een gebruiker zijn sessies en cookies niet uitzetten dan? als dit wel kan dan werkt het niet meer toch?
Gewijzigd op 15/09/2011 14:00:22 door Robert dat ben ik
hij kan cookies verwijderen of tegenhouden, maar een sessie is gewoon een tijdelijk bestandje op de server. dus niet op de client computer..