[php] foreach loop

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ik heb een probleem met een foreach loop. Misschien best simpel maar ik kom er niet uit.

Ik heb checkboxes die die een waarde uit de database gebruiken om aan gevinkt of af gevinkt te zijn..
Al deze boxes staan op een pagina en ik wil dat je hun status kan veranderen en door op submit te drukken worden ze aangepast in de database...

Dit is wat ik heb:
PHP:
1
2
3
4
// veld staat op 1 in de database
if ($betaald == 1) { $betaald = "<input name='betaald[".$row['order_id']."]' type='checkbox' value='1' checked>"; }
// anders (niet op 1)
else if ($betaald == 0) { $betaald = "<input name='betaald[".$row['order_id']."]' type='checkbox' value='0' >"; }


nu haal ik met een loop hun waardes op:

PHP:
1
2
3
4
foreach($betaald as $key => $line) {

echo $betaald[$key];
}


Nu heb ik even 4 records om te testen ingevoegd (allen op 1, dus aangevinkt) maar als ik nu alles afvink krijg ik een foutmelding:
PHP:
1
Warning: Invalid argument supplied for foreach()


Wat doe ik fout?

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

$_POST['betaald']

waarom hebben ze ooit register_globals ingevoerd in PHP :(

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Maar wat als ik velden af maar ook aan wil kunnen vinken? Moet ik die checkbox ook een "value" meegeven dan?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

van checkboxes krijg je alleen een result (value) zodra deze aangevinkt is helaas

Acties:
  • 0 Henk 'm!

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ok dan doe ik het anders (met een list)

Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 13:59

DexterDee

I doubt, therefore I might be

je kunt ook met isset bekijken of deze gezet is. Meestal initialiseer ik zoiets met het volgende stukje PHP code:

PHP:
1
$betaald_opties = isset($_POST['betaald']) ? $_POST['betaald'] : array();

Zo bevat $betaald_opties zeker een array, of er nu waarden gesubmit zijn of niet.

Ik zou dat eerste stukje PHP code ook omschrijven, dan wordt het wat makkelijker te onderhouden:
PHP:
1
2
// veld staat op 1 in de database 
$betaald = "<input name='betaald[{$row['order_id']}]' type='checkbox' value='$betaald'" . $betaald==1 ? ' checked' : '' . ">";

Volgens mij klopt er nog meer niet aan de logica van dat PHP scriptje. Je variabele $betaald bevat eerst een boolean uit de database en vervolgens stop je er een HTML string in van de checkbox :?

Klik hier om mij een DM te sturen • 3245 WP op ZW

Pagina: 1