PHP rij van messages verkorten

Status
Niet open voor verdere reacties.

pro pizza

Gebruiker
Lid geworden
24 dec 2007
Berichten
454
Hallo,

Ik heb in het verwerk fomulier van mijn form een heleboel if functies waarin gecontroleerd wordt of naam bestaat, wel ingevuld is etc.
Bijv.
PHP:
if(empty($fname)){
$message2 = "Vul een geldige naam in.<br />";
}
En als ik dan de messages weer wil geven krijg ik zo'n lange string:
PHP:
echo $message1 . " " . $message2 . " " . $message3 . " " . $message4 . " " . $message5  . " " . $message6 . " " . $message7 . " " . $message8 . " " . $message9 . " " . $message10 . " " . $message11 . " " . $message12 . " " . $message13 . " " . $message14 . " " . $message15 . " " . $message16 . " " . $message17 . " " . $message18;
Kan dit ook korter?

Mvg, Ruben
 
Ja.

maar je dient ipv losse variabelen een array te gebruiken.

vervolgens kun je implode gebruiken. $array bevat bijvoorbeeld alle meldingen. vervolgens kun je met implode(" ", $array); tussen elke melding een spatie of iets anders zetten. zie voorbeeld hieronder.


Code:
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone
 
PHP:
if(empty($fname)){
$message1 = "Vul een geldige voornaam in.<br />";
} 
if(empty($lname)){
$message2 = "Vul een geldige achternaam in.<br />";
}
En dan moet dit zo met een array?
PHP:
if(empty($fname)){
$array = array('Vul een geldige naam in.');
}
if(empty($lname)){
$array = array('Vul een geldige achternaam in.');
}
En dan
PHP:
$comma_separated = implode("<br />", $array);

echo $comma_separated; // lastname,email,phone
 
je dient eenmalig de array te definieren met = array();
daarna kun je hem gewoon vullen.

dus dan krijg je dit:

Code:
$meldingenArray = array();

if(empty($fname)){
$meldingenArray[] = 'Vul een geldige naam in.';
}
if(empty($lname)){
$meldingenArray[] = 'Vul een geldige achternaam in.';
}
$comma_separated = implode("<br />", $meldingenArray); // deze aan het einde.
 
echo $comma_separated;

je kan ook de inhoud van de array zien door dit te doen:
print_r($meldingenArray);// dit is voor test doeleinden.
 
het gebruiken van arrays is trouwens echt handig!

je kan gemakkelijk informatie die bij elkaar hoort opslaan en ophalen. ze kunnen namelijk ook 'multidimensional' zijn. zie hieronder.

bijvoorbeeld:

$persoonArray = array();
$persoonArray[1]['naam'] = "Bart";
$persoonArray[1]['adres'] = "randweg 12";
$persoonArray[1]['stad'] = "Rotterdam";
$persoonArray[1]['leeftijd'] = "24";

als je bovenstaande voor een aantal personen hebt kun je bijvoorbeeld gemakkelijk alle namen printen. doormiddel van een for loop.

for($i=0;$i<10;$i++){
echo $persoonArray[$i]['naam'];
}

zo zijn er nog honderden manieren om arrays te gebruiken. echt aan te raden!

suc6 er mee.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan