Frågan 12 maj 2002 12:12 #1 Hej hej
Jag har lite strul med en grej som jag försöker fixa... hoppas att ni kan hjälpa mig :)
Jag har ett formulär som jag ska fylla med info från databas, detta gör jag ju vanligast genom $row['variabelnamn'].
Men nu tänkte jag toka till det en aning.
Jag håller nämligen på med lite saker för att kunna validera ett formulär, så då kan man fylla formuläret på två sätt:
1. $row['variabelnamn']
2. $_REQUEST['variabelnamn']
Det som är gemensamt med de båda är då ['variabelnamn'], så jag behöver bara bestämma om det ska vara $row eller $_REQUEST före.
T.ex.:
// lägger till prefixet som gör att rätt variabler kommer med
$pre = "row";
Formulärfältet ser sedan ut såhär:
<input type="text" name="medlFodelsedatum" id="medlFodelsedatum" size="40" maxlength="150" value="<?php $tmp = $pre."['medlFodelsedatum']"; echo $$tmp; ?>" class="notistext"><br />
När jag försöker att hämta det såhär så får jag inte fram någe. Kollar jag i error.log (Apache) så finns det ett meddelande såhär:
PHP Notice: Undefined variable: row['medlFodelsedatum'] in C:\Program\Apache Group\Apache2\htdocs\vif\includes\forms\form_medlem2.inc.php on line 10
rad 10 är då formulärskoden.
Ersätter jag $$tmp med:
$row['medlFodelsedatum']
så fungerar allt perfa, så jag hämtar iaf rätt från db.
Jag har ingen aning om varför det inte funkar. Vore kanontacksam för lite hjälp :)
/Grodan
Matte Medlem sedan aug. 2000 2 975 inlägg Prova det här:
... value="<?php $tmp = ${$pre."['medlFodelsedatum']"}; echo $tmp; ?>" ...
Hej :)
Men, nope. Jag får samma felmeddelande. :(
/G
PHP Notice: Undefined variable: row['medlFodelsedatum'] in C:\Program\Apache Group\Apache2\htdocs\vif\includes\forms\form_medlem2.inc.php on line 10
Matte Medlem sedan aug. 2000 2 975 inlägg En variant som borde gå är
$pre = $row; // alternativt $pre = $_REQUEST;
.
.
... value="<?php echo $pre['medlFodelsedatum'] ?>" ...
Annars några exempel $$:
Detta fungerar:
$text1="ettan";
$text2="tvåan";
for($i=1;$i<=2;$i++) echo ${"text".$i}."<br>";
Detta fungerar också:
$text['ett'] = "ettan";
$text['tva'] = "tvåan";
$pre = "text";
foreach ($$pre as $Value) {
echo $Value."<br>";
Men detta fungerar inte (konstaterade jag nu):
$text['ett'] = "ettan";
$text['tva'] = "tvåan";
$pre = "text";
echo ${$pre."['ett']"}."<br>";
Någon kanske kan förklara varför ?
Ursprungligen av Matte En variant som borde gå är
$pre = $row; // alternativt $pre = $_REQUEST;
.
.
... value="<?php echo $pre['medlFodelsedatum'] ?>" ...
Japp, detta funkade (iaf för $row, ska testa det andra snart).
Fattar dock inte varför detta funkar när det första inte funka, någon som kan förklara?
Men jag e JÄTTEnöjd, bugar o tackar. :birp
Saved my day lixom. :)
/Grodan
T ThACRoW Medlem sedan dec. 2001 314 inlägg
Men detta fungerar inte (konstaterade jag nu):
$text['ett'] = "ettan";
$text['tva'] = "tvåan";
$pre = "text";
echo ${$pre."['ett']"}."<br>";
Någon kanske kan förklara varför ?
Yepp, man gör så här:
$text['ett'] = "ettan";
$text['tva'] = "tvåan";
$pre = "text";
echo ${$pre}['ett']."<br>";
Matte Medlem sedan aug. 2000 2 975 inlägg Man tackar. Så självklart allt är när man ser svaret. :)
Då borde mitt ursprungliga kodförslag fungerat om man ändrat den till:
... value="<?php $tmp = ${$pre}['medlFodelsedatum']; echo $tmp; ?>" ...