Avatar billede mtrolle Nybegynder
25. januar 2004 - 12:01 Der er 10 kommentarer og
1 løsning

variabelt variabelnavn - eller noget!

Hejsa!
Jeg har et problem der nager mig.
Jeg har en side som bliver fyldt op med checkboxe via en database til en print-funktion.
Disse checkboxe (ca. 16 stk.) skal jo have et navn, så de kan blive genkedt.

Den eneste måde jeg kender til, er at give checkboxen fx id'et som navn så det gør jeg så, men nu skal jeg jo kunne sige noget ala
if(checkbox$row[id]) echo $row[print_text];

Fint - fandt noget om variable variabler og gjorde således:
$checkboxname = 'checkbox' . $row[id];
if($$checkboxname) echo $row[print_text];

Det virkede - MEN: jeg har behov for en else sætning
$checkboxname = 'checkbox' . $row[id];
if($$checkboxname) echo $row[print_text];
else echo'Ikke valgt';

Men det virker ikke!

Og et sidespørgsmål: Er der virkelig ikke en smartere måde til det med checkboxe? Jeg synes det er besværligt at gøre således... Godt være det bare er mig ;)
//mtrolle
Avatar billede jelzin101 Praktikant
25. januar 2004 - 12:04 #1
${$}

;)
Avatar billede jelzin101 Praktikant
25. januar 2004 - 12:06 #2
hovsa forkert spørgsmål ;0)
Avatar billede mtrolle Nybegynder
25. januar 2004 - 12:26 #3
fattede jeg ikke en brik af - men det virker i alt fald ikke!
Avatar billede jelzin101 Praktikant
25. januar 2004 - 13:18 #4
;) det var også det forkerte spørgsmål jeg postede til.
Avatar billede mtrolle Nybegynder
25. januar 2004 - 17:45 #5
godt det samme - men ok! else sætningen er jo ikke vigtig!
Avatar billede Slettet bruger
25. januar 2004 - 19:49 #6
if($$checkboxname){
  echo $row['print_text'];
} else {
  echo 'Ikke valgt';
}

Og skidt med point, den var nem.

Og jo, der er en smartere måde.

Lav din form, så name på den checkbox er checkbox[nummer] så får dit script et pænt array, som du kan se i.

$checkbox=$_POST['checkbox'];

if (isset($checkbox[$row['id']]) && $checkbox[$row['id']]=='checked'){
  echo $row['print_text'];
} else {
  echo 'Ikke valgt';
}
Avatar billede mtrolle Nybegynder
25. januar 2004 - 20:08 #7
Hvorfor virker det her ikke:
$checkboxname = 'checkbox' . $row[id];
if($$checkboxname) echo $row[print_text];
else echo'Ikke valgt'

der burde jo ikke være forskel på det og:
if($$checkboxname){
  echo $row['print_text'];
} else {
  echo 'Ikke valgt';
}
Avatar billede Slettet bruger
25. januar 2004 - 20:25 #8
I dit eksempel bliver if-kommandoen afsluttet, når den kommer til ;. Der for virker det ikke.

Jeg vil anbefale altid at sætte klammer uden om.
Avatar billede mtrolle Nybegynder
25. januar 2004 - 20:43 #9
hvorfor kan man så skrive
$i = 1;
if($i == '1') echo'i er 1';
echo'i er ikke 1';
Avatar billede Slettet bruger
25. januar 2004 - 20:49 #10
Fordi PHP ikke forbyder en at gøre dumme ting. Prøv selv at lave et lille php-script bare med dette indhold:

<?php

$i = 1;
if($i == '1') echo 'i er 1\n';
echo 'i er ikke 1\n';

?>


Og se, hvad den skriver. Du får begge linier udskrevet.
Avatar billede mtrolle Nybegynder
26. januar 2004 - 10:53 #11
så lærte jeg også det :)
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