/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Checkboxes og array problem?
Fra : Jørgen Staun


Dato : 12-01-04 14:15

Jeg sidder og slås lidt med Checkboxes og et array. Min kode er som
nedenstående:

Det jeg prøver er at have en streng med et ukendt antal data (her blot
testdata), disse data bliver hentet fra en MySQL-base. Men når jeg laver mit
dataindhold som $indhold, så virker Foreach-løkken ikke - bruger jeg
$authors, så virker det. Kan nogen fortælle mig hvad forskellen er på det
jeg forsøger?


//DENNE VIRKER IKKE??
$indhold ="'J.R.R. Tolkien','Dr. Seuss','Dan Brown','Robert Ludlum','Gaston
Leroux'";
$authors = array($indhold);

//DENNE VIRKER
$authors = array('J.R.R. Tolkien','Dr. Seuss','Dan Brown','Robert
Ludlum','Gaston Leroux');


echo "<form action=\"{$_SERVER['PHP_SELF']}\" method=\"post\">\n";

foreach($authors as $author)
{
echo " <input type=\"checkbox\" value=\"{$author}\"
name=\"authors[]\">{$author}</input><br />\n";
}
echo " <input type=\"submit\" value=\"Submit\" name=\"submit\"/>\n";
echo "</form>\n";

echo "<hr />\n";



 
 
Kristian Thy (12-01-2004)
Kommentar
Fra : Kristian Thy


Dato : 12-01-04 14:13

Jørgen Staun uttered:
> //DENNE VIRKER IKKE??
> $indhold ="'J.R.R. Tolkien','Dr. Seuss','Dan Brown','Robert
> Ludlum','Gaston Leroux'";
> $authors = array($indhold);

Her er $authors et array som indeholder EEN streng, $indhold. Du har
jo sat "" om listen af forfattere.

> //DENNE VIRKER
> $authors = array('J.R.R. Tolkien','Dr. Seuss','Dan Brown','Robert
> Ludlum','Gaston Leroux');

Her sætter du en kommasepareret liste af strenge ind i et array.

\\kristian
--
To err is human. To moo, bovine.

Thomas Lindgaard (12-01-2004)
Kommentar
Fra : Thomas Lindgaard


Dato : 12-01-04 14:19

On Mon, 12 Jan 2004 14:14:31 +0100, Jørgen Staun wrote:

> //DENNE VIRKER IKKE??
> $indhold ="'J.R.R. Tolkien','Dr. Seuss','Dan Brown','Robert Ludlum','Gaston
> Leroux'";
> $authors = array($indhold);

Det er fordi

$streng = "'bla', 'bla'";
$array = array($streng);

giver

array("'bla', 'bla'"); // Een indgang i arrayet

hvorimod

$array = array('bla', 'bla');

giver

array('bla', 'bla'); // To indgange

Prøv at print_r() de to udgaver af $author, så vil du kunne se
forskellen (brug browserens "vis kildekode" for at se den formatterede
udskrift).

Hvis du vil lave en streng med et antal forfattere adskilt med komma, så
prøv

$array = explode(',', $authors);

Giver det mening (det blev vist ikke skrevet så klart som det var
meningen)...
/Thomas

Jørgen Staun (12-01-2004)
Kommentar
Fra : Jørgen Staun


Dato : 12-01-04 14:49


> $array = explode(',', $authors);
>
> Giver det mening (det blev vist ikke skrevet så klart som det var
> meningen)...
> /Thomas

Hah! - sådan drenge (mænd) - tak for hjælpen, det var jo selvfølgelig en
dummerfejl.

Det virkede med explode



mig@selv.dk (12-01-2004)
Kommentar
Fra : mig@selv.dk


Dato : 12-01-04 20:33

Jeg er løbet i et nyt problem, som jeg ikke lige kan gennemskue hvordan jeg
skal gribe an.

Nu har jeg fået fremvisningen af webnavn fra mit array som jeg ønsker det
fra min MySQL-base således:

----------------------
$HentWebsider = mysql_query("select webnr,webnavn,afdeling from websider");

// Så laver vi et array af de sider som opfylder kriterier og smider dem i
en tabel
while($r = mysql_fetch_array($HentWebsider))
{
$Webs .="$r[webnavn],";
}
//echo $afdeling;
$Websider = explode(',', $Webs);

foreach($Websider as $Webside)
{

$list .="<tr>
<td><center><input type=\"checkbox\" value=\"{$Webside}\"
name=\"Websider[]\"></input></center></td>
<td><font class=\"pn-normal\">{$Webside}</font></td>
<td></td>
<td></td>
</tr>";
}
----------------------

det viser så nogenlunde dette

-----------------------
|box|websidenavn | | |
-----------------------
|box|websidenavn | | |
-----------------------

Jeg ville egentlig også gerne have vist Afdeling og Webnr, der bliver hentet
i SELECT-sætningen, men hvordan - det kan jeg ikke lige gennemskue, nogen
ideer?



Jørgen Staun (13-01-2004)
Kommentar
Fra : Jørgen Staun


Dato : 13-01-04 11:11

fiksede den på en lidt anden metode:

while($r = mysql_fetch_array($HentWebsider))
{
MapSize($webroot."\\$r[afdeling]\\$r[webnavn]");
$list .= "<tr>
<td><font class=\"pn-normal\">$r[webnavn]</font></td>
<td><font
class=\"pn-normal\">".$webroot."$r[afdeling]\\$r[webnavn]</font></td>
<td align='right'><font class=\"pn-normal\">$VisForbrug
"._SIZEBETEGN."</td>
<td><input type='checkbox' name='WebSide[]'
value='$r[webnr]'></input></td>
</tr>";
}



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste