21. januar 2006 - 14:40Der er
9 kommentarer og 1 løsning
find de checkboxes som IKKE er checked
Hej eksperter. Jeg har et lille spørgsmål, yet tricky.
Lidt baggrundsviden: Jeg er igang med at lave en shoppingcart. Når man går ind og kigger sin bestilling i "min kurv", er der en "checked" checkbox ud for hver vare, som symbol på at man vil købe den.
Samtidig skal man ha mulighed for at opdatere kurven, og hvis man unchecker checkboxen ud for en vare og trykker "opdater" skal alle de vare som IKKE er checked, slettes.
Men jeg kan ikke lige komme på, hvordan man får fat i de inputs, som ikke er checked?
//Check om varer skal fjernes foreach($_GET[buy_item] as $key => $check) { if ($check == 0) { mysql_query("delete from cart where cookieId = '$cart_id' and itemId = $key"); } }
det er nok fordi $_GET['buy_item'] er tom (burde også ske hvis du har flere varer og unchecker dem allesammen). Det kan heldigvis nemt fikses:
if(isset($_GET['buy_item'])) { // Hvis der statig er krydset nogen varer af... $checked = implode(',', array_keys($_GET['buy_item'])); mysql_query("DELETE FROM `cart` WHERE `cookieId`=$cart_id AND `itemId` NOT IN ($checked)"); } else { // ...ellers må det være tegn på at vognen skal tømmes mysql_query("DELETE FROM `cart` WHERE `cookieId`=$cart_id"); }
Hej igen. Jeg tror carten er lidt utilfreds med elsen
$_GET['buy_item'] bliver kun sat hvis kurven bliver opdateret. Hvis man f.eks. tilføjer en vare, vil $_GET['buy_item'] ikke blive sat, og så bliver varen da ædt af else, gør den ik?
Jo, det er rigtigt. Du er nødt til at have en eller anden form for indikator der fortæller hvornår du piller ved varerne i kurven. Du kan f.eks. smide et hidden felt ind i afkrydsningsformen, som du bruger til at checke om der skal slettes fra kurven.
Doh, det gør du ikke (du bruger jo $_GET). Ret form method til POST, og hiv variablerne ud af $_POST i stedet for $_GET. Så skulle den være der.
Synes godt om
Ny brugerNybegynder
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.