/ 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
Checkbox variabel problem
Fra : Tina Holt


Dato : 23-10-06 10:40

Mit problem er, at der via nogle checkbox'e skal smides noget
data i databasen. Er checkboxen IKKE checket skal der smides 'N'
ned, er den checket skal der smides 'J' ned, men lige nu får jeg
'J' lige meget om den er checket eller ej - hvor er problemet?

$abs="N";
if($_POST[ABS]=="on");
{
$abs="J";
}

$asr="N";
if($_POST[ASR]=="on");
{
$asr="J";
}

$fodstotter="N";
if($_POST[Fodstotter]=="on");
{
$fodstotter="J";
}

$koleskab="N";
if($_POST[Koleskab]=="on");
{
$koleskab="J";
}

if($_POST[opret])
{
$result=mysql_query("INSERT INTO Specs
(Specs_id,ABS,ASR,Fodstotter,Koleskab)
values('','".$abs."','".$asr."','".$fodstotter."','".$koleskab."'
)");
if(!$result)
{
print "Error opret";
}
}//end if

?>

...

<table border="1">
<form method='post' title='Opret'
action="<?=$_SERVER[PHP_SELF]?>" name='opret' id='opret'>
<tr>
<td>
ABS:
</td>
<td>
<input type="checkbox" name="ABS" />
</td>
<td>
ASR:
</td>
<td>
<input type="checkbox" name="ASR" />
</td>
<td>
Fodstøtter:
</td>
<td>
<input type="checkbox" name="Fodstotter"
/>
</td>
<td>
Køleskab:
</td>
<td>
<input type="checkbox" name="Koleskab" />
</td>
</tr>
<tr>
<td>
<input type='submit' name='opret' id='opret'
value='Opret Bus' title="Opret Bus" OnClick
="this.form.submit();" />
</td>
</tr>
</form>
</table>
...

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jesper Brunholm (23-10-2006)
Kommentar
Fra : Jesper Brunholm


Dato : 23-10-06 11:22

Tina Holt skrev:
> Mit problem er, at der via nogle checkbox'e skal smides noget
> data i databasen. Er checkboxen IKKE checket skal der smides 'N'
> ned, er den checket skal der smides 'J' ned, men lige nu får jeg
> 'J' lige meget om den er checket eller ej - hvor er problemet?

sikkert at fx $_POST['ABS'] indeholder noget andet end on/off.

Check indholdet af dit POST array med

echo '<pre>';
print_r($_POST);
echo '</pre>';

mvh

Jesper Brunholm

Bertel Lund Hansen (23-10-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 23-10-06 11:29

Tina Holt skrev:

> Mit problem er, at der via nogle checkbox'e skal smides noget
> data i databasen. Er checkboxen IKKE checket skal der smides 'N'
> ned, er den checket skal der smides 'J' ned, men lige nu får jeg
> 'J' lige meget om den er checket eller ej - hvor er problemet?

> $abs="N";
> if($_POST[ABS]=="on");
> {
> $abs="J";
> }

Et semikolon lukker en løkke (i bred forstand). Det betyder at
din if bliver afsluttet inden den har nogen effekt.

Betegnelsen inden i [] skal i anførselstegn.

Derudover tror jeg ikke at en checkbox bliver sat til "on". Jeg
tjekker selv kun på om den overhovedet er sat.

Du skal altså skrive:

$abs="N";
if (isset($_POST['ABS'])) { $abs="J"; }

Hvis der kun er ét statement der skal udføres i en blok, kan man
undvære {}. Nogle vil også foretrække at man bruger else i stedet
for altid at sætte variablen til "N". Begge dele er et spørgsmål
om smag.

if (isset($_POST['ABS'])) $abs="J";
else $abs="N";

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Leif Neland (23-10-2006)
Kommentar
Fra : Leif Neland


Dato : 23-10-06 12:35


"Bertel Lund Hansen" <unospamo@lundhansen.dk> skrev i en meddelelse
news:453c9921$0$4170$ba624c82@nntp02.dk.telia.net...
> Tina Holt skrev:
>
>
> Du skal altså skrive:
>
> $abs="N";
> if (isset($_POST['ABS'])) { $abs="J"; }
>
> Hvis der kun er ét statement der skal udføres i en blok, kan man
> undvære {}. Nogle vil også foretrække at man bruger else i stedet
> for altid at sætte variablen til "N". Begge dele er et spørgsmål
> om smag.
>
> if (isset($_POST['ABS'])) $abs="J";
> else $abs="N";
>

Eller kort og koncist:

$abs=isset($_POST['ABS'])?"J":"N";

Leif



Allan Kok (24-10-2006)
Kommentar
Fra : Allan Kok


Dato : 24-10-06 06:44


"Tina Holt" <iamkejejNOSPAM@hotmail.com> skrev i en meddelelse
news:453c8dd3$0$49199$14726298@news.sunsite.dk...
> Mit problem er, at der via nogle checkbox'e skal smides noget
> data i databasen. Er checkboxen IKKE checket skal der smides 'N'
> ned, er den checket skal der smides 'J' ned, men lige nu får jeg
> 'J' lige meget om den er checket eller ej - hvor er problemet?
>
> $abs="N";
> if($_POST[ABS]=="on");
> {
> $abs="J";
> }
<snip>
Det er fordi PHP ved jo ikke hvad værdi checkboxen får!
Jeg bruger som følger:
if (isset($_REQUEST["ABS"]) && ($_REQUEST["ABS"] == "on")) $abs = "J";
else $abs = "N";

> <td>
> <input type="checkbox" name="ABS" />
> </td>

Jeg fortæller også hvad værdi checkboxen skal have hvis den er checked
<input type="checkbox" name="ABS" value="on" />

mvh
Allan



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

Månedens bedste
Årets bedste
Sidste års bedste