/ 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
Problemer med checkbox
Fra : Kasper Johansen


Dato : 30-12-02 18:03

Hejsa gruppe.
Jeg er ved at lave en side hvor noget dynamisk indhold skal kunne vælges at
være skjult.

Til dette bruger jeg en ganske almindelig checkbox. Da der er flere ting som
skal ud bruger jeg en $check[] variabel.

Det virker dog også helt fint nok, men hvis brugeren ikke markere
checkboksen bliver dens "value" intet. Derfor hvis brugeren markere boks
nummer to og ikke nummer et sætter PHP ikke variabel 1 til at være intet men
fjerner den helt, så at variabel nummer 2 bliver variabel nummer 1!

Derfor laver min kode mega fejl da jeg bruger en foreach-løkke da der er
flere af disse "multivariabler".

Foreach-løkken ser således ud:

foreach($texinput AS $key => $value){
[kode]
}

Det er så meningen at de forskellige variabler skal følges ad, men det går
jo ikke eftersom PHP sætter variabel nummer 2 til at blive variabel nr 1.

Hvordan løser jeg dette?


---
Mvh Kasper Johansen



 
 
Thomas Lindgaard (30-12-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 30-12-02 18:41

"Kasper Johansen" <TeQio@CyberGaming.dk> wrote in
news:3e107c6f$0$71680$edfadb0f@dread11.news.tele.dk:

> Det er s† meningen at de forskellige variabler skal f›lges ad, men det
> g†r jo ikke eftersom PHP s‘tter variabel nummer 2 til at blive
> variabel nr 1.
>
> Hvordan l›ser jeg dette?

Du skriver bare

   <input type="checkbox" name="check[0]" value="hejsa">
   <input type="checkbox" name="check[1]" value="goddag">

i dit HTML-output.

Mvh.
/Thomas

Kasper Johansen (31-12-2002)
Kommentar
Fra : Kasper Johansen


Dato : 31-12-02 01:15

----- Original Message -----
From: "Thomas Lindgaard" <thomas@it-snedkeren.BLACK_HOLE.dk>
Newsgroups: dk.edb.internet.webdesign.serverside.php
Sent: Monday, December 30, 2002 6:41 PM
Subject: Re: Problemer med checkbox

> Du skriver bare
>
> <input type="checkbox" name="check[0]" value="hejsa">
> <input type="checkbox" name="check[1]" value="goddag">

Dette virker ikke. For det første skal den være "checked" også. Men hvis
brugeren markere, og derefter afmarkere min checkbox vil den stadig være lig
med ingen ting. Og PHP vil igen flytte alle mine variabler et hak tilbage :(

Men tak alligevel.

---
Mvh Kasper Johansen



Mikkel Christensen (31-12-2002)
Kommentar
Fra : Mikkel Christensen


Dato : 31-12-02 04:03

"Kasper Johansen" <TeQio@CyberGaming.dk> skrev i en meddelelse
news:3e10e1ae$0$71610$edfadb0f@dread11.news.tele.dk...
> ----- Original Message -----
> From: "Thomas Lindgaard" <thomas@it-snedkeren.BLACK_HOLE.dk>
> Newsgroups: dk.edb.internet.webdesign.serverside.php
> Sent: Monday, December 30, 2002 6:41 PM
> Subject: Re: Problemer med checkbox
>
> > Du skriver bare
> >
> > <input type="checkbox" name="check[0]" value="hejsa">
> > <input type="checkbox" name="check[1]" value="goddag">
>
> Dette virker ikke. For det første skal den være "checked" også. Men hvis
> brugeren markere, og derefter afmarkere min checkbox vil den stadig være
lig
> med ingen ting. Og PHP vil igen flytte alle mine variabler et hak tilbage
:(
>

Du løser problemet med en kombination. Du sørger for at alle pladserne i dit
array er navngivne på forhånd(som beskrevet i Thomas Lindgaards svar), og
derefter tjekker du om de eksisterer før koden i din foreach-løkke udføres.

<?php
foreach($texinput AS $key => $value){
if($value){
//[kode]
}
else{
//I dette tilfælde er check-boxen ikke markeret.
}
}
?>

--
------> END <------
Mikkel Magnus Christensen
barefoot@jaha.dk, www.startfirma.dk, www.starthotel.dk, www.i-know.dk
------> END <------


Niels Andersen (31-12-2002)
Kommentar
Fra : Niels Andersen


Dato : 31-12-02 09:18

Kasper Johansen wrote in <3e10e1ae$0$71610$edfadb0f@dread11.news.tele.dk>:
>> <input type="checkbox" name="check[0]" value="hejsa">
>> <input type="checkbox" name="check[1]" value="goddag">
> Dette virker ikke. For det første skal den være "checked" også.

<input type="checkbox" name="check[0]" value="hejsa" checked="checked">
....

> Men hvis
> brugeren markere, og derefter afmarkere min checkbox vil den stadig være
> lig med ingen ting.

Sådan er HTML. Checkboxe uden kryds er det samme som ingen checkbox, set fra
den vinkel. Det vil kræve store omveje med tvivlsomt javascript at omgå
det.

> Og PHP vil igen flytte alle mine variabler et hak tilbage :(

Det kommer an på hvordan du læser dem.

foreach ($check AS $value) {
echo "Det er kryds i den, med værdien $value.";
}

foreach ($check AS $key=>$value) {
echo "Der er jo kryds i nummer $key med værdien $value.";
}

Det virker fint.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Kasper Johansen (01-01-2003)
Kommentar
Fra : Kasper Johansen


Dato : 01-01-03 17:18

"Niels Andersen" <niels-usenet@myplace.dk> skrev i en meddelelse
news:uocQ9.19313$Hl6.2143458@news010.worldonline.dk...
> Det kommer an på hvordan du læser dem.
>
> foreach ($check AS $value) {
> echo "Det er kryds i den, med værdien $value.";
> }
>
> foreach ($check AS $key=>$value) {
> echo "Der er jo kryds i nummer $key med værdien $value.";
> }
>
> Det virker fint.

Nej, for jeg har således to andre variabler kørende ved siden af.

En som kalder sig selv for $choicenr[] og anden anden $choicenavn[].

Disse to variabler får altid fyldt data i. Det er så meningen at de tre
variabler skulle følges ad hele vejen til der ikke er mere data til sidst.

Men når en checkboks ikke er krydset fjerner PHP måske nr 2 data fordi der
intet er i den. I de to andre variabler er der så data i nr 2 og så løber de
ud af spor med hinanden :(

Så kludrer koden helt og sætter data'erne forkert på plads i min database :(

Jeg har næsten prøvet alt indtil videre og intet har virket.

Man kunne også lave foreachløkken som du siger. Men hvis brugeren så ikke
tager checkboksen springer den bare over og skriver intet til min database.


---
Mvh Kasper



Niels Andersen (02-01-2003)
Kommentar
Fra : Niels Andersen


Dato : 02-01-03 08:30

Kasper Johansen wrote in <3e1314c7$0$249$edfadb0f@dread14.news.tele.dk>:
>> foreach ($check AS $value) {
>> echo "Det er kryds i den, med værdien $value.";
>> }
> Nej, for jeg har således to andre variabler kørende ved siden af.
>
> En som kalder sig selv for $choicenr[] og anden anden $choicenavn[].

Sæt numre i dem også.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Niels Andersen (03-01-2003)
Kommentar
Fra : Niels Andersen


Dato : 03-01-03 09:38

OKasper Johansen wrote in a private email:
> > Sæt numre i dem også.
>
> Altså, mit problem består således i at hvis:
>
> $var[] = "kasper";
> $var[] = "";
> $var[] = "johansen";
>
> Som du nok kan gætte vil $var[0] være "kasper". Men $var[1] vil være
> "johansen" fordi PHP fjerner den hvor der intet er.
>
> Og så passer det jo ikke med de andre variabler når den skal følges med
> dem!

$fornavne[0] = "kasper";
$fornavne[1] = "bent";
$fornavne[2] = "erik";

$efternavne[0] = "johansen";
// Intet
$efternavne[2] = "eriksen";

De passer sammen, hvis du giver dem numre.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste