Avatar billede michaeltryl Seniormester
06. januar 2007 - 00:27 Der er 1 kommentar og
1 løsning

hjælp til array

jeg har denne form

<form name='moduler' method='POST' ACTION='opdater-moduler.php'>
<?
$moduler = mysql_query("SELECT modulid, navn FROM moduler ORDER BY modulid DESC") or die(mysql_error());
while ( $c = mysql_fetch_array($moduler))
{
$id = $c[modulid];
$navn = $c[navn];
echo"<input type='checkbox' name='modul[]' value='$modulid'> $navn <br>";
}
?>
<input class="inputknap" type="submit" value="Opdater">
</form>

når der trykkes opdater gør den til en side med denne kode
if (isset($_POST['modul']))
{
    foreach($_POST['modul'] as $modul)
    {
    echo"$modul";
mysql_query("UPDATE moduler SET aktiv= 1 WHERE modulid='$modul'") or die(mysql_error());
    }
  header("Location: ret-moduler.php");
 
}

de moduler der er markeret i formularen skal så sættes = 1 i kollonnen aktiv, men de ikke markerede skal sættes = 0 i databasen, men der sker ingenting.

derudover kan jeg ikke regne ud hvordan jeg viser alle med aktiv =1 som markedere i formularen.

håber en forstår hvad jeg mener ellers må i spørge
Avatar billede coderdk Praktikant
06. januar 2007 - 03:10 #1
Prøv:

<form name='moduler' method='POST' ACTION='opdater-moduler.php'>
<?
$sql = "SELECT modulid, navn, aktiv FROM moduler ORDER BY modulid DESC";
$moduler = mysql_query( $sql ) or die(mysql_error());
while ( $c = mysql_fetch_array($moduler))
{
    $id = $c['modulid'];
    $navn = $c['navn'];
    $akt = ( $c['aktiv'] == 1 ? ' checked="checked"' : '' );
    echo "<input type='checkbox' name='modul[]'" . $akt . " value='$modulid'> $navn <br>";
}
?>
<input class="inputknap" type="submit" value="Opdater">
</form>

og:

if ( is_array($_POST['modul']) && count( $_POST['modul'] ) > 0 )
{
    $sql = "UPDATE moduler SET aktiv = 0";
    mysql_query( $sql ) or die(mysql_error());
    $res = array();
    foreach ( $_POST['modul'] as $modul )
    {
        $res[] = intval( $modul );
    }
    $ids = implode( ",", $res );
    $sql = "UPDATE moduler SET aktiv = 1 WHERE modulid IN ($ids)";
    mysql_query($sql) or die(mysql_error());
    header("Location: ret-moduler.php");
    exit;
}
Avatar billede michaeltryl Seniormester
06. januar 2007 - 04:19 #2
det virker tak for hjælpen
der var lige en lille fejl
$modulid i denne linie
echo "<input type='checkbox' name='modul[]'" . $akt . " value='$modulid'> $navn <br>";
skulle kun være $id

bare så andre ikke undre sig over at jeg godkender et svar som ikke virker :-)
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

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging