Avatar billede dondy-kurt Nybegynder
25. januar 2011 - 15:10 Der er 4 kommentarer og
1 løsning

Automatisk opdatering af database ved checkbox ændring

Hej Eksperter

Jeg er ved at lave et meget lille cms system. På en af siderne lister jeg alle mine sider i en tabel. Her skal det så være muligt at slå til og fra om siden skal være udgive eller ej. Dette gøres meget simpelt ved at en celle i sidens database ændres til "1" eller "0". Mit problem er så bare at jeg ikke ved hvordan jeg gør sådan, at den med det samme checkboxen ændres opdatere databasen.

Jeg har lavet et lille eksempel, for så tror jeg i forstår meget bedre hvad det er jeg mener :)

<?php
$forsp = mysql_query("SELECT * FROM " . $post_type . "s ORDER BY organize") or die(mysql_error());
while($array = mysql_fetch_array($forsp)){

  <input type="checkbox" name="checkbox" value="check_id_' . $array["id"] . '" />

} ?>

<?php
if(isset($_POST['checkbox'])){
  UPDATE DATABASE HER--->
}
?>
Avatar billede jakobdo Ekspert
25. januar 2011 - 15:20 #1
Prøv at ret:
<input type="checkbox" name="checkbox" value="check_id_' . $array["id"] . '" />
til:
<input type="checkbox" name="checkbox[]" value="' . $array["id"] . '" />

så kan du løbe resultaterne igennem via:

<?php
if(isset($_POST['checkbox'])){
  foreach($_POST['checkbox'] AS $key => $value){
echo $key . '<br />';
}
}
?>
Avatar billede Fnugus Nybegynder
25. januar 2011 - 15:25 #2
Prøv med noget i retning af:

<form action="nyside.php" id="myForm" method="post">
<input type="checkbox" name="checkbox" value="check_id_
<? echo $array['id']; ?>" onClick="document.getElementById('myForm').submit();"></form>

Så skulle den gerne, når man klikker på checkboxen, automatisk submitte formen, og gå til siden hvor der indsættes noget.

Alternativt kan du bruge noget AJAX til at køre et php-script til indsættelse af ting i databasen når der klikkes på checkboxen uden at have brug for at reloade siden.
Avatar billede showsource Seniormester
25. januar 2011 - 19:26 #3
Som supplement til jakobdo:

<input type="checkbox" name="checkbox[]" value="' . $array["id"] . '" />

så kan du løbe resultaterne igennem via:

<?php
if(isset($_POST['checkbox']) && is_array($_POST['checkbox'])){
$checks = array();

  foreach($_POST['checkbox'] as $value){
  $checks[] = $value;
  }

$idref = implode(",", $checks);

mysql_query("UPDATE ".$post_type."s SET aktiv = 1 WHERE id IN (".$idref.") or die (mysql_error());

mysql_query("UPDATE ".$post_type."s SET aktiv = 0 WHERE id NOT IN (".$idref.") or die (mysql_error());

}
?>

Utestet! :O)
Avatar billede danco Nybegynder
26. januar 2011 - 09:40 #4
Mon ikke AJAX ville være det mest hensigtsmæssige i dette tilfælde, AJAX har jeg erfaring for at bedst når det handler om opdatering realtime.
Avatar billede dondy-kurt Nybegynder
03. september 2012 - 21:35 #5
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