Avatar billede compac Seniormester
03. maj 2007 - 15:32 Der er 12 kommentarer og
1 løsning

Checkbox problemer

Jeg har altid så stor "fornøjelse" når jeg laver checkboxes.

Jeg vil gerrne slette en record fra min database ved hjælp af en checkbox.
Min kode:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<form action="" method="post" name="" id="">
<?php
include("conn.php");
$sql="select * from $branch order by sn";
          $result=mysql_query($sql,$connection) or die(mysql_error());
          while ($row = mysql_fetch_array($result)) {

echo '<input type="checkbox" name="ref[]" value="$row['.sn.']">';
echo $row['titel'];
echo $row['kortbeskr'];
      }
echo '<input type="submit" name="submit">';
echo '</form>';
if(isset($submit)) {
  if ( count( $_POST['ref'] ) > 0 )
{
  $ids = join( ",", $_POST['ref'] );
  $sql="delete from $branch where sn='$ids'";
  $result=mysql_query($sql) or die(mysql_error());
}
}
?>
</body>
</html>

- men der sker intet.
Avatar billede erikjacobsen Ekspert
03. maj 2007 - 15:37 #1
Måske

$sql="delete from $branch where sn in ($ids)";
Avatar billede erikjacobsen Ekspert
03. maj 2007 - 15:38 #2
Det forudsætter lige at det er tal, så der ikke skal '...' rundt om hver enkelt tal.
Men lad nu være med at lade andre end dig selv få adgang til den side. Du kan se hvor nemt det er at proppe andre tal ind i dine checkboxe, og pludselig få slettet alle rækker.
Avatar billede kinderaeg Nybegynder
03. maj 2007 - 15:39 #3
Og så skal du lige ha' styr på dine input-bokse:
echo '<input type="checkbox" name="ref[]" value="'.$row["sn"].'">';
Avatar billede nyhuus Nybegynder
03. maj 2007 - 15:39 #4
Jeg har lige lavet noget ligne bare med <select> der har jeg gjort følgene med php koden

[code]
  if(isset($_POST['Submit']))
  {
    $text = $_POST['sort'];

    foreach ($text as $key => $value)
    {
      $conn = new Connect;
      $conn->MySqlConn();
        mysql_query("UPDATE ".$config["db"]["billeder"]." SET sort = '$value' WHERE id = '$key'") or die(mysql_error());  // henter data via sql
      $conn->MySqlClose();
    }
    echo "Soteringen er blevet gemt!";
  }
[/code]

Håber dette kan hjælpe dig :)

er selv ny til foreach så vil prøve at forklare det så godt jeg nu kan :)

foreach($dit_array as $key => $value)
{
}

$key vil blive til nummeret som $_POST['sort'] har og value vil blive soretings nummeret.

jeg har så gjort det i min kode har jeg istedet for name=\"sort[]\" har jeg brugt name=\"".$sort[$row[id]."]\"
Avatar billede erikjacobsen Ekspert
03. maj 2007 - 15:39 #5
if(isset($submit)) {    <-- virker ikke hvis du ikke har register-globals sat. Du bør bruge  isset($_POST['submit'])
Avatar billede olebole Juniormester
03. maj 2007 - 15:50 #6
<ole>

Erik ... en knap med navnet submit ...?!??!!!  ;oD

compac >> Du må _aldrig_ bruge ord som 'submit' som en identifier. Den fejl er formodentlig skyld i flere tusinde spørgsmål i E's database. Kald knappen Hertha, Gurli, Herberth_Leopold_Maximillian_van_der_Schwandvogel_III - eller hvad du nu vil ... bare ikke submit  =)

/mvh
</bole>
Avatar billede nyhuus Nybegynder
03. maj 2007 - 15:51 #7
Olebole hvad er grunden til det? jeg har aldrig haft fejl med det endnu.
Avatar billede compac Seniormester
03. maj 2007 - 16:10 #8
Det fungerer nu i princippet, men delete-funktionen bliver først udført efter jeg har trykket 2 gange på submit-knappen.
Umiddelbart kan jeg ikke se, hvad jeg kan bruge din kode til i denne forbindelse nyhuus.
Avatar billede compac Seniormester
03. maj 2007 - 16:36 #9
- og måske kan et tillægsspørgsmål accepteres?
Hvis jeg sætter php-koden ind under value, hvordan er syntaxen så?:

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

Jeg tror det er apostrofferne det er galt med.
Avatar billede nyhuus Nybegynder
03. maj 2007 - 17:08 #10
compac

Det var for at vise en anden måde at lave det på
Avatar billede erikjacobsen Ekspert
03. maj 2007 - 17:32 #11
"delete-funktionen bliver først udført efter jeg har trykket 2 gange" - den udføres første gang. Men på siden laver du en SELECT før du laver en DELETE.
Så længe man holder sine små pølsefingre fra Javascript, kan man nu sagtens kalde sine felter for "submit".
Avatar billede compac Seniormester
05. maj 2007 - 14:16 #12
Er der et svar på mit "tillægsspørgsmål"

Hvis jeg sætter php-koden ind under value, hvordan er syntaxen så?:

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

- eller skal jeg oprette et nyt spm.
Avatar billede erikjacobsen Ekspert
06. maj 2007 - 00:04 #13
Sku' nok være noget i retning af

<input type="checkbox" name="ref[]" value="<?php echo $row['id']; ?>">
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