If key=value i 2 arrayer

PHPportalen Forum Index » PHP
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
marcusgarden



Medlem i: 3197 dagar

Status: Offline



#742003
Inlägg Skrivet: 2017-11-23 01:19      Ämne: If key=value i 2 arrayer Citera

Jag har ett formulär som upprepas x antal gånger.
Jag har en checkbox som kollar vilka delar av formuläret som fylls i, alltså checkboxen får ett unikt namn, typ, <checkbox name="check[$id]">

Tanken är att när formuläret upprepar sig så ska inputsen sedan kopplas ihop med checkboxens name[].

Exempel:
KOD:
1:
foreach
2:
<checkbox name="check[$id]">
3:
<input  name="fnamn[$id]">
4:
<input  name="enamn[$id]">
5:
<input  name="stad[$id]">
6:
endforeach


Formuläret kanske upprepas 10 gånger men det är bara de $id som checkas som ska sparas.
När jag kör print_r($_POST) så ser jag alla 10 iterationer, om vi antar att jag bara vill ha 2 iterationer, alltså checkbox med $id 1 och 2 bockas för och resultatet blir då t.ex.

KOD:
1:
<checkbox name="check[1]"> bockad
2:
<input  name="fnamn[1]">
3:
<input  name="enamn[1]">
4:
<input  name="stad[1]">
5:
<checkbox name="check[2]"> bockad
6:
<input  name="fnamn[2]">
7:
<input  name="enamn[2]">
8:
<input  name="stad[2]">
9:
<checkbox name="check[3]"> ej bockad
10:
<input  name="fnamn[3]">
11:
<input  name="enamn[3]">
12:
<input  name="stad[3]">


Min tanke är att göra något i stil med:

KOD:
1:
foreach $_POST['check'] as $key => $value
2:
foreach $value as $k => $v
3:
if $value == $k
4:
printa $v (alltså de checkboxar som är bockade, alltså 1 och 2)


Jag får inte till det och kanske gör det mer krångligt än vad det är:/

Tacksam för svar!
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



Medlem i: 4658 dagar
Från: Tavesta
Status: Offline



#742004
Inlägg Skrivet: 2017-11-23 02:22      Ämne: Citera

Ja, du krånglar nog till det mer än nödvändigt:
PHP:
1:
 foreach($_POST['check'] as $key=>$value) {
2:
   //$value behövs inte till någonting alls här.
3:
   echo 'id:';
4:
   var_dump($key);
5:
   echo 'fnamn:';
6:
   var_dump($_POST['fnamn'][$key]);
7:
   echo 'enamn:';
8:
   var_dump($_POST['enamn'][$key]);
9:
   echo 'stad:';
10:
   var_dump($_POST['stad'][$key]);
11:


Återigen: var_dump ger bättre information än print_r när du felsöker. Framför allt i de fall du kanske råkar ha tomma värden med i datat någonstans.
Med hjälp av utmatningen från var_dump kan du se ganska exakt hur en foreachloop kommer bete sig med datat ifråga.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » PHP
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic