Avatar billede koch Nybegynder
18. juli 2005 - 19:09 Der er 15 kommentarer og
1 løsning

if sætning på betingelse af checkbox

Hvis jeg skal gøre noget på baggrund af om checkboxe er afkrydsede eller ej, hvor dan gøres dette. Jeg tænkte

if($slet[$car_id] == TRUE AND $delete_soldcars == FALSE)

hvor $slet[$car_id] og $delete_soldcars er navnene (name) på checkboxene.
Avatar billede straszek Praktikant
18. juli 2005 - 20:15 #1
Jeg ville gøre sådan:
if($slet[$car_id] == ON AND $delete_soldcars !== ON)

Men det kan sikkert også gøres på andre måder.
Avatar billede sukos Juniormester
18. juli 2005 - 20:48 #2
if(isset($_POST["checkboxnavn"])) {
blabla........

}

har virket fint for mig indtil videre
Avatar billede koch Nybegynder
18. juli 2005 - 22:15 #3
Lad os sige jeg anvender

if(isset($_POST["slet[$car_id]"]) AND !isset($_POST["[delete_soldcars]"))
        {
            $delete_carnum = $_POST["slet[$car_id]"];
            $query = @mysql_query("DELETE FROM carlist WHERE id = \"$delete_carnum\"");
        }

Jeg har lavet min databaseforespørgsel i starten af if sætningen. Ovenstående kommer i  else-delen. Her har jeg så ikke ikke mulighed for at bruge slet[$car_id], da jeg så kun vil få den sidste værdi!
Avatar billede koch Nybegynder
18. juli 2005 - 22:35 #4
laver man bare en forespørgsel mere?
Avatar billede sukos Juniormester
19. juli 2005 - 02:13 #5
Nåhh, det er et array.

if(isset($_POST["slet"]) && is_array($_POST["slet"])) {

    foreach($_POST["slet"] as $vaerdi)
    $sql = "DELETE FROM carlist WHERE id = ". intval($$vaerdi); // id er et tal! Hvis ikke bruges ' før og efter $$vaerdi

    echo $sql ."<br />";

    // mysql_query($sql);

    }
}
Avatar billede sukos Juniormester
19. juli 2005 - 06:53 #6
Det er sgu ik' så'n om natten!
Der er selvf. en $ for meget i $$vaerdi
Skal kun være $vaerdi !
Avatar billede koch Nybegynder
19. juli 2005 - 18:06 #7
Nu har jeg prøvet følgende:


        if(isset($_POST["slet"]) && is_array($_POST["slet"]) && !isset($_POST["delete_soldcars"]))
        {   
            foreach($_POST["slet"] as $vaerdi)
            {

                $sql = "DELETE FROM carlist WHERE id = ". intval($vaerdi);
                if(mysql_query($sql))
                {
                    $slet_message ="<td border=\"0\">slettet fra databasen </td>";
                    echo("$slet_message");
                }
                else
                {
                    echo("Bilerne blev ikke slettet");
                }
            }
        }


Og når jeg klikker på submit knappen så får jeg beskeden "slettet fra databasen"! Hvad er det jeg f... up?!
Avatar billede koch Nybegynder
19. juli 2005 - 18:15 #8
Glemte at fortælle at der ikke slettes fra databasen!
Avatar billede sukos Juniormester
19. juli 2005 - 18:23 #9
Prøv at lave en
echo $sql ."<br />";
for at tjekke query
Avatar billede koch Nybegynder
19. juli 2005 - 18:30 #10
ah, som du skrev tidligere ;)

jeg får:
DELETE FROM carlist WHERE id = 0, så det er forkert id jeg får.

Jeg skriver jo  if(isset($_POST["slet"]), det skal ikke være slet[$car_id] vel?
Avatar billede koch Nybegynder
19. juli 2005 - 22:24 #11
Problemet er at slet indeholder værdien 'on' og ikke nogen integer! Burde den ikke det når name="slet[$car_id]"?
Avatar billede koch Nybegynder
19. juli 2005 - 23:23 #12
Jeg havde tænkt noget i retning af

if($var[$car_id] == ON){echo("<input type = \"hidden\" value =\"slet[$car_id]\" >");}

som jeg vil placere i min form. Men jeg finder jo først ud af om $var[$car_id] er on eller off efter der er submitted!

hvis jeg indsættter

foreach($_POST["var"] as $vaerdi){
if($var[$car_id] == ON){$slet_car = "$car_id"; }

så virker det jo kun hvis jeg stadig adgang til den første forespørgsel jeg har lavet til databasen. men har jeg det?
Avatar billede koch Nybegynder
19. juli 2005 - 23:24 #13
for det er der jeg får $car_id fra
Avatar billede sukos Juniormester
22. juli 2005 - 08:26 #14
hmm, du skal vel bruge "id" til tildele din checkbox en værdi
id er så det row i DB'en som indeholder "on", "off"

id -> 1 "kol_navn" -> "On"
id -> 2 "kol_navn" -> "Off"

<input type="checkbox" name="slet[]" value="<?php echo $row["id"]; ?>">
Avatar billede koch Nybegynder
24. juli 2005 - 12:23 #15
Lige præcis, havde faktisk ændret dette, havde bare ikke fået lukket.

Problemet var at jeg have

<input type="checkbox" name="slet[]" value="<?php echo slet$row["id"]; ?>">

hvor jeg så bare ville have tallet fra. Læg et svar...
Avatar billede sukos Juniormester
12. august 2005 - 07:11 #16
ehmm, et svar!
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