Avatar billede darkside Nybegynder
05. februar 2004 - 14:33 Der er 12 kommentarer og
1 løsning

PHP & Checkboxe

Heysa, nogen der kan se hvordan man kan klare følgende problem

Jeg har en side med 4 checkboxe på eks:
Æbler
Bananer
Pærer
Appelsin

Det skal så være muligt at vælge eks æbler, pærer og appelsiner, det er heller ikke noget problem, men nu kommer det så

Jeg har en mysql db der ser sådan her ud:
CREATE TABLE `workshops` (
  `id` int(11) NOT NULL auto_increment,
  `value` varchar(150) NOT NULL default '',
  `antal` varchar(50) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=14 ;

Den kan så indholde
ID Value Antal
1  Pærer  1
2  Æbler  5

Så når man har valgt et par ting i de checkboxe skal mysql DB'en opdateres med det nye antal

Så der eks er 6 Æbler.

Håber det er til at forstå :)
Avatar billede sukos Juniormester
05. februar 2004 - 14:44 #1
Du laver et hiddenfelt i din form, som har tallet på id
Og så bruger en UPDATE workshops.................

Men hvor får du det nye tal fra?
Avatar billede darkside Nybegynder
05. februar 2004 - 14:46 #2
Forstår ikke helt ?

Jeg har en side med de 4 checkboxe på som jeg så poster til en anden side hvor jeg smider info i mysql DB'en.
Avatar billede ztyxx Nybegynder
05. februar 2004 - 14:46 #3
update workshops set antal=antal+$_POST[antal] where value=$_POST[value]
Avatar billede darkside Nybegynder
05. februar 2004 - 14:55 #4
ztyxx, Lyder rigtigt nok, kan du lave et lille eks ?
Avatar billede ztyxx Nybegynder
05. februar 2004 - 15:01 #5
er valuen fast i checkboksen, eller skal man selv skrive det i et andet felt?
Avatar billede darkside Nybegynder
05. februar 2004 - 15:13 #6
valuen er fast..
Avatar billede darkside Nybegynder
06. februar 2004 - 07:59 #7
har lavet et lille eks her
www.edesigns.dk/checkbox.php

Problemmet er den opdaterer kun 1 felt selvom man vælger flere..
koden ser således ud:
<kode>
<?
if (isset($_POST['gem'])) {
  $_POST['frugt'] = $frugt;
  include("mysql.php");
  mysql_query("UPDATE frugt SET antal = antal+1 WHERE value = '$frugt'");
  echo "Opdateret!";
}
?>
</kode>
Avatar billede sukos Juniormester
06. februar 2004 - 08:10 #8
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
Æbler
<input type="checkbox" name="frugt[]" value="test"><br>
Pærer
<input type="checkbox" name="frugt[]" value="test1"><br>
Appelsiner
<input type="checkbox" name="frugt[]" value="test2">
<br>
<input type="submit" name="gem" value="Gem!">
</form>

<?php
if(isset($_POST["frugt"])) {
foreach($_POST["frugt"] as $var) {
echo $var ." - ";
}
}
?>
Avatar billede sukos Juniormester
06. februar 2004 - 08:12 #9
eller

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
Æbler
<input type="checkbox" name="frugt[]" value="test"><br>
Pærer
<input type="checkbox" name="frugt[]" value="test1"><br>
Appelsiner
<input type="checkbox" name="frugt[]" value="test2">
<br>
<input type="submit" name="gem" value="Gem!">
</form>

<?php
if(isset($_POST["frugt"])) {
foreach($_POST["frugt"] as $var) {
echo "mysql_query(\"UPDATE frugt set antal = antal+1 WHERE value = '". $var ."'\") or die (mysql_error()) <br>\n";
}
}
?>
Avatar billede sukos Juniormester
06. februar 2004 - 08:13 #10
"fidusen" ligger i at bruge [] efter navnet, og på den måde få et array at lege med.
Avatar billede darkside Nybegynder
06. februar 2004 - 08:16 #11
sukos, Perfekt! ;)

Smid et svar ;)
Avatar billede darkside Nybegynder
06. februar 2004 - 08:21 #12
Man lærer jo hver eneste dag ;)

Tænkte nok det var et array jeg skulle ha fat i.
Avatar billede sukos Juniormester
06. februar 2004 - 08:28 #13
Skal osse lige tilføjes at det ikke er html standard
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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