[PHP] Variable zonder waarden negeren

Pagina: 1
Acties:
  • 27 views sinds 30-01-2008

  • mazz
  • Registratie: November 2004
  • Laatst online: 08-06 13:48
Ik heb een forumulier gemaakt waar je verschillende dingen moet selecteren uit dropdownmenu`s
Je kunt ook niks kiezen uit een dropdown. Dit heeft dan geen waarde.

Nadat het formulier gepost is worden de gegevens uit de dropdownboxen onder elkaar gezet.
VB:

ding1
ding2
ding3
etc

Maar als je bij de tweede dropdownbox niks selecteert dan krijg je dit
ding1

ding3
etc

Nu wil ik dat hij die regel niet overslaat en gewoon verder gaat als de variable geen waarde heeft.
Zoals dit

ding1
ding3
etc

Dit is de code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$item1 = $_POST['item1'];
$item2 = $_POST['item2'];
$item3 = $_POST['item3'];
$item4 = $_POST['item4'];
$item5 = $_POST['item5'];
$item6 = $_POST['item6'];
$item7 = $_POST['item7'];
$item8 = $_POST['item8'];
$item9 = $_POST['item9'];
$item10 = $_POST['item10'];
echo "$item1\n$item2\n$item3\n$item4\n$item5\n$item6\n$item7\n$item8\n$item9\n$item10"
?>


Hoe kan ik dit oplossen

20 jaar, en wat had ik bereikt?


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Wat heb je zelf al geprobeerd? Waarom gebruik je geen array waar je de lege elementen bijv. uit wipt?

Kijk ook even in onze Programming Beleid Quickstart; zoals je kunt zien voldoet je topic niet echt aan wat aldaar beschreven is. Bij deze het vriendelijke verzoek je TS aan te passen ( Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/edit.gif ) met de juiste gegevens.

[ Voor 69% gewijzigd door RobIII op 10-04-2007 14:10 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Icelus
  • Registratie: Januari 2004
  • Niet online
PHP:
1
2
3
4
5
6
7
$item3 = '';
if ( isset($_POST['item3']) ) {
  $item3 = $_POST['item3'];
}

// óf
$item3 = isset($_POST['item3']) ? $_POST['item3'] : '';
Kun je dit niet beter met arrays oplossen?

[ Voor 24% gewijzigd door Icelus op 10-04-2007 14:11 ]

Developer Accused Of Unreadable Code Refuses To Comment


  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Een array zou idd beter zijn, maar kijk ook eens naar empty

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Icelus schreef op dinsdag 10 april 2007 @ 14:09:
PHP:
1
2
3
4
5
6
7
$item3 = '';
if ( isset($_POST['item3']) ) {
  $item3 = $_POST['item3'];
}

// óf
$item3 = isset($_POST['item3']) ? $_POST['item3'] : '';
Kun je dit niet beter met arrays oplossen?
Daarmee los je nog het 'lege regel' probleem niet op ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • bsbfx
  • Registratie: November 2001
  • Laatst online: 03-08 12:54
misschien zoiets (ff uit de losse pols):
PHP:
1
2
3
4
5
6
7
<?PHP
for($i=1; $i <= 10; $i++){
   if ($_POST['item'.$i] <> ''){
      echo $_POST['item'.$i]."\n";
   }
}
?>


Hierbij krijg je wel een extra \n op het einde.
Mocht je dat niet willen kan je de \n er natuurlijk ook gewoon voor zetten en de eerste valide waarde geen \n geven.

Dan zou je zoiets krijgen

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?PHP
$show_n = false;
for($i=1; $i <= 10; $i++){
   if ($_POST['item'.$i] <> ''){
      echo $_POST['item'.$i];
      if ($show_n){
         echo "\n";
      }
      else {
         $show_n = true;
      }
   }
}
?>

[ Voor 59% gewijzigd door bsbfx op 10-04-2007 14:23 ]


  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Ik zou het probleem toch liever bij de bron aanpassen en er een array van maken waar je vervolgens met een foreach doorheen kan lopen.
Op die manier hoef je ook niet als je een select box aan 't form toevoegd de for loop aan te passen... (of TS moet een reden hebben om niet van een array gebruik te maken ?)

  • bsbfx
  • Registratie: November 2001
  • Laatst online: 03-08 12:54
TheRookie schreef op dinsdag 10 april 2007 @ 14:31:
Ik zou het probleem toch liever bij de bron aanpassen en er een array van maken waar je vervolgens met een foreach doorheen kan lopen.
Op die manier hoef je ook niet als je een select box aan 't form toevoegd de for loop aan te passen... (of TS moet een reden hebben om niet van een array gebruik te maken ?)
$_POST is ook gewoon een array. Als je verder nog wat me de data wil doen is het inderdaad handig om ze in een aparte array op te slaan. Dat kan heel simpel door in mijn code in de for loop even een
PHP:
1
$items[] = $_POST['item'.$i];

toe te voegen.

Maar als je de data alleen wil laten zien waarom zou je hem dan eerst uit een array ophalen ($_POST) en in een kleinere array stoppen om vervolgens die kleinere array weer te laten zien?

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Ik bedoel niet de items 'los' in het $_POST[] array, je kan voor de select name ook 'items[]' gebruiken; dan staan de items zelf al in een array ;)

  • mazz
  • Registratie: November 2004
  • Laatst online: 08-06 13:48
TheRookie schreef op dinsdag 10 april 2007 @ 14:31:
Ik zou het probleem toch liever bij de bron aanpassen en er een array van maken waar je vervolgens met een foreach doorheen kan lopen.
Op die manier hoef je ook niet als je een select box aan 't form toevoegd de for loop aan te passen... (of TS moet een reden hebben om niet van een array gebruik te maken ?)
Ik ben mezelf even aan het inlezen over een array en laat het jullie snel weten!
Ben nog heel even in de tuin bezig :P

20 jaar, en wat had ik bereikt?


  • mazz
  • Registratie: November 2004
  • Laatst online: 08-06 13:48
Ik zal voor de volledigheid even het hele script neerzetten.
Het forumulier wordt dus in een pdf file verwerkt
*knip*

[ Voor 92% gewijzigd door Creepy op 10-04-2007 16:34 ]

20 jaar, en wat had ik bereikt?


  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

En wat verwacht je nu ?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

Ik heb je code even verwijderdt. Het voegt op het moment niks toe aan het topci en komt nogal over als "ik dump mijn code en hoop dat iemand het voor me oplost". Iets wat heir niet de bedoeling is.

Daarnaast: duits commentaar? Ben je duits of is het script niet eens van jezelf? Support op code van anderen moet je bij de maker van de code halen, niet hier.

Daarnaast zijn array's een redelijk basis iets van programmeren dat ik verwacht dat je er wel uit moet kunnen komen :)

Mocht je er echt niet uitkomen dan kan je een nieuwe topic openen maar geef dan wel aan welke zaken je nu zelf hebt geprobeerd en wat daar dan niet mee lukte. Zie ook Programming Beleid - De Quickstart

[ Voor 41% gewijzigd door Creepy op 10-04-2007 16:38 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.