Door
Paul Greeve
op 11-04-2011 19:25
gewijzigd op 11-04-2011 19:31
5.004 views
Beste allemaal ik heb een vraagje over het meenemen van variabelen naar een volgende pagina.
Uit een database haal ik een rij namen op die worden gekoppeld aan o.a. enkele dropdownvelden. Deze velden krijgen een 'name' die wordt gehaald uit een variabele.
de waarden van de velden mee te nemen.
Dat lukt dus niet voor Voertuig_'.$row['Pers_ID']
Ik heb ook geprobeerd de waarde van Voertuig_'.$row['Pers_ID'] in een nieuwe variabele te krijgen maar ook de waarde daarvan blijft geen resultaat geven met $_SESSION.
Gegevens uit een formulier meenemen naar een volgende pagina kan simpel met de juiste action in je formulier.
Dus:
<form action="paginawaardevariabelenzichtbaarmoetenzijn.php" method="post">
... Hier je formulieronderdelen
</form>
Wanneer het formulier gesubmit is (controleren met if($_SERVER['REQUEST_METHOD'] == 'POST') ) kan je de array $_POST uitlezen.
Dus de pagina "paginawaardevariabelenzichtbaarmoetenzijn.php" wordt dan zoiets als:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
print_r($_POST);
}
?>
Edit: Sessies kan je gebruiken om binnen één sessie (logisch) gegevens te onthouden over meerdere pagina's (let wel op de veiligheid).
?
Onbekende gebruiker
12-04-2011 19:38
Zoals ik zei, ga normaliseren. Dat voertuig_huppeldepup komt uit je database, dat klopt niet.
Verder moet Maarten gewoon naar [php]echo[/php] en [php]string[/php] kijken.
Zoals ik zei, ga normaliseren. Dat voertuig_huppeldepup komt uit je database, dat klopt niet.
Verder moet Maarten gewoon naar [php]echo[/php] en [php]string[/php] kijken.
Dat voertuig_huppeldepup komt niet uit de database naar mijn inziens. Dit is alleen bedoeld om elke selectbox een unieke naam te geven aan de hand van een prefix en de id van data. Dit hoeft niet per definitie fout te zijn.
Wat Arjan zegt is inderdaad het geval. Het formulier toont een lijst met namen, die wel uit de database komen, met daar achter een aantal velden die gevuld moeten worden waaronder dus een voertuig dat uit een dropdownlist gekozen moet worden. Dit is een vastgestelde lijst (juist om te standaardiseren Karl :-).
Elke dropdownlist wordt d.m.v. dat huppeldepup gedoe voorzien van een unieke naam die overeenkomt met de id van de persoon die er voor staat.
Met de tip van Arjan zie ik in ieder geval dat dit wel werkt.
Bij persoons id 122684 hoort bijvoorbeeld:
[Ingezet_122684] => J
[Voertuig_122684] => BR20-1
[Functie_122684] => B
[BTijd_122684] =>
[ETijd_122684] =>
En bij persoons id 122689 hoort:
[Ingezet_122689] => J
[Voertuig_122689] => TS22-1
[Functie_122689] => 1
Dit ga ik opslaan in de database.
Voordat het naar de db gaat wil ik het op een nieuwe pagina laten zien voor controle en eventueel printen.
Het probleem is dat ik bijvoorbeeld de waarde van [Voertuig_122689] => TS22-1 niet uit de $_POST kan halen met
Wat wil je precies, want voor jou is het misschien allemaal duidelijk wat je wilt, maar voor ons (lees: mij) is dat allerminst. Als je goed doorhebt wat een array inhoudt en hoe een array opgebouwd is, dan zal je ook wel een begin kunnen maken met het opnieuw indelen van de array waarmee je de data in de goede volgorde zet zodat je deze eenvoudig kan uitlezen.
Je kan ook in je naam van je selectbox meteen een arraynotatie opgeven, zodat de uitkomst automatisch in een array wordt gezet.
Let op: Hierbij moet $row['Pers_ID'] altijd een unieke integer zijn!
$_POST['naamvanselectbox'] zal dan een array bevatten met de verschillende waarden. Dit heeft als voordeel dat het eenvoudiger is om uit te lezen en om bewerkingen uit te voeren.
Uitlezen kan dan met (exclusief de nodige controles!):
<?php
foreach($_POST['ingezet'] AS $key => $value) {
Arjan, dat ziet er inderdaad veel logischer en ook eenvoudiger uit.
Ik denk dat ik hier wel mee verder kan.
Echt heel erg bedankt voor de moeite en je tijd!