Avatar billede allandk Nybegynder
09. juni 2013 - 23:38 Der er 6 kommentarer og
1 løsning

List ALLE værdier fra dropdown med flere selects

if((isset($_POST['dato'])) && (isset($_POST['course']))) {
foreach($_POST['dato'] as $dato[] => $course[]) {
   
echo $_POST['dato[]'];
echo $_POST['course[]'] . "<br/>";

}

Her sker ingenting! Nogle bud på fejlen?

Med udganspunkt i: for($day=1; $day<=5; $day++) smides der fem inputs og fem selects ud;

<input name="dato[]" id="dato[]" ...
<select name="course[]" id="course[]">
Avatar billede michael_stim Ekspert
10. juni 2013 - 09:53 #1
foreach($_POST['dato'] as $dato => $course) {
 
echo $_POST['dato'];
echo $_POST['course'] . "<br/>";

}
Avatar billede allandk Nybegynder
10. juni 2013 - 16:28 #2
Notice: Array to string conversion in C:\xampp\htdocs\sub\minskolebod.dk\admin\addWeekPlan.php on line 225
Array
Notice: Array to string conversion in C:\xampp\htdocs\sub\minskolebod.dk\admin\addWeekPlan.php on line 226
Array

225: echo $_POST['dato'];
226: echo $_POST['course'] . "<br/>";
Avatar billede michael_stim Ekspert
10. juni 2013 - 16:36 #3
Min fejl:
foreach($_POST['dato'] as $dato => $course) {

echo $dato;
echo $course. "<br/>";

}
Avatar billede allandk Nybegynder
10. juni 2013 - 16:40 #4
Samme fejl... Mangler jeg noget?
Avatar billede michael_stim Ekspert
10. juni 2013 - 16:42 #5
OK, nu ser jeg først hvad du vil, eller rettere forstår IKKE hvad du vil.

Du har fem tekstfelter og fem selects? Præcis hvilke værdier vil du have fra dine selects? Meningen med en select er jo netop at den skal vise værdien af den valgte (selected).
Avatar billede allandk Nybegynder
10. juni 2013 - 17:18 #6
Jeg har en if/else. Hvis der findes fem datoer for næste uge i db vises de fem sæt; dato + madret.

Ellers genereres én form med fem (for de fem hverdage) selects, hvor hver select har en forskellig dato og for hver select kan man så vælge en madret i en dropdown der også henter sit indhold i db.

For princippets skyld ville jeg gerne lære det med []. Jeg kan selvfølgelig bare udskrive de fem (kendte) datoer med hver deres værdi - det synes jeg bare virker gammeldags.
Avatar billede allandk Nybegynder
11. juni 2013 - 10:24 #7
Sikke noget rod. Her er, hvad jeg endte med at bruge:

    if((isset($_POST['dato'])) && (isset($_POST['course']))) {       
$dato = $_POST['dato'];
$course = $_POST['course'];
if (count($dato) > 0) {
for ($i=1;$i<=count($dato);$i++) {
    echo "<li>$dato[$i] - $course[$i]</li>";
    }
}    
}       

Det virker. Håber, at det ikke er slamkode, der ikke virker i nogle uforudsete tilfælde ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester