Avatar billede juks Novice
25. april 2005 - 09:52 Der er 14 kommentarer og
1 løsning

liste bruger og vælger hvilke man vil slette med kryds

hej jeg skal bruge et script hvor man kan slett bruger udfra angivet den bruger der skal slettes ved en checkboks..
Avatar billede kasperbn Nybegynder
25. april 2005 - 12:39 #1
Du kan godt lave det i php, men jeg foreslår at du bruger javascript til at samle de valgte brugere i f.eks. et array og så smider det videre til php...

Pseudo-forløb:
1. Adm markerer de ønskede brugere og klikker på "Slet"-knappen.
2. Sletknappen udløser en onclick-funktion der tjekker hver checkbox om den er sat til 'on'.
3. Den samler alle markerede brugere i en string bestående af brugernes id'er.
4. Du åbner en ny url a la window.open('?delete=true&ids=1,2,3,4,5','_self');
5. Nu åbnes samme side med variablen "delete" som er sat til true. Du tjekker øverst i dokumentet om denne delete er sat til true med en if-statement.
6. Du har også en string bestående af id'erne og du kan lave en mysql_query("DELETE FROM dintabel WHERE id = $ids"). (antaget at kører mysql self.)
Avatar billede juks Novice
25. april 2005 - 12:42 #2
hmm
har ikke sover i 28 timer og rookie indenfor php---

jeg gik igang med denne her men kan ikke få det til at spille

<?php
include 'db.inc';

if($sletden){
mysql_query("DELETE FROM bruger WHERE idbruger = '$id'");
echo ("Slettet!");
}

  $sporg = mysql_query("select Fornavn,,efternavn, user_name from users2 where aut ='$id' ");
  if ($antal>=0){
    while ($brug = mysql_fetch_array($sporg)) {
      extract($brug);
      echo ("$user_name $fornavn $efternavn")
      header("Brugernummer: $idbruger<INPUT TYPE="checkbox" NAME="$id"></br>");
<input type='submit' name='sletden'>";
    }
}
  }
?>
Avatar billede kasperbn Nybegynder
25. april 2005 - 13:09 #3
Hej igen

Tjek dine tabelnavne og field-navne!
Prøv det her:

<?php
include 'db.inc';

// TJEKKER OM DER SKAL SLETTES
if($delete){
    $ids = explode(','$_GET['ids']);
    for($i=0; $i<sizeof($ids); $i++) {
        $wheresql .= "idbruger = ".$ids[$i]." ";
        if(sizeof($ids)-1 != 1) {
            $wheresql .= "OR ";
        }
       
    }
   
        mysql_query("DELETE FROM bruger WHERE ".$wheresql);
    echo ("Slettet!");
}

?>

<html>

<body>


<?
  // HENTER ALLE BRUGERE FRA DB
  $q = mysql_query("select idbruger, Fornavn,efternavn, user_name from users2 where aut ='$id' ");

  // SKRIVER ALLE BRUGERE UD 
  while($r = mysql_fetch_array($q)) {
      // Laver en string med Id'er der skal tjekkes:
      $ids .= "\"".$r['idbruger']."\",";
  ?>
   
    <input type="checkbox" name="<?=$r['idbruger']?>" id="<?=$aut?>"> <?=$user_name?> - <?=$Fornavn?> <?=$efternavn?><br />   

  <?}?>

    <button onclick="java script:getMarkedSend();">Slet markerede brugere</button>

    <script>
   
        function getMarkedSend() {
   
            idsar = new Array(<?=$ids?>);
            for(i = 0; i < idsar.length; i++) {
           
                if(document.getElementById(idsar[i]).value == 'on') {
                    markedids = concat(markedids,i+",");
                }   
            }
           
            window.open('?delete=true&ids='+markedids,'_self');
   
        }
    </script>




</body>

</html>
Avatar billede kasperbn Nybegynder
25. april 2005 - 13:10 #4
i explode-funktion skal der lige være et komma så
  $ids = explode(','$_GET['ids']);
bliver til
  $ids = explode(',',$_GET['ids']);
Avatar billede juks Novice
25. april 2005 - 13:30 #5
det kan jeg sku ikke få til at spille



<?php
include 'db.inc';

// TJEKKER OM DER SKAL SLETTES
if($delete){
    $ids = explode(',',$_GET['ids']);
    for($i=0; $i<sizeof($ids); $i++) {
        $wheresql .= "aut = ".$ids[$i]." ";
        if(sizeof($ids)-1 != 1) {
            $wheresql .= "OR ";
        }

    }

        mysql_query("DELETE FROM users2 WHERE ".$wheresql);
    echo ("Slettet!");
}

?>

<html>

<body>


<?
  // HENTER ALLE BRUGERE FRA DB
  $q = mysql_query("select * from users2 ");

  // SKRIVER ALLE BRUGERE UD
  while($r = mysql_fetch_array($q)) {
      // Laver en string med Id'er der skal tjekkes:
      $ids .= "\"".$r['aut']."\",";
  ?>

    <input type="checkbox" name="<?=$r['idbruger']?>" id="<?=$aut?>"> <?=$user_name?> - <?=$Fornavn?> <?=$efternavn?><br />

  <?}?>

    <button onclick="java script:getMarkedSend();">Slet markerede brugere</button>

    <script>

        function getMarkedSend() {

            idsar = new Array(<?=$ids?>);
            for(i = 0; i < idsar.length; i++) {

                if(document.getElementById(idsar[i]).value == 'on') {
                    markedids = concat(markedids,i+",");
                }
            }

            window.open('?delete=true&ids='+markedids,'_self');

        }
    </script>




</body>

</html>
Avatar billede kasperbn Nybegynder
25. april 2005 - 13:42 #6
Får du nogle fejlmeddelelser?
Avatar billede kasperbn Nybegynder
25. april 2005 - 13:43 #7
Endnu en rettelse:
<input type="checkbox" name="<?=$r['idbruger']?>" id="<?=$aut?>"> <?=$user_name?> - <?=$Fornavn?> <?=$efternavn?><br />

Til

<input type="checkbox" name="<?=$r['idbruger']?>" id="<?=$idbruger?>"> <?=$user_name?> - <?=$Fornavn?> <?=$efternavn?><br />



aut til idbruger
Avatar billede juks Novice
25. april 2005 - 13:51 #8
jeg får 4 check bokser ingen andre oplysninger, men kan ikke slette dem ,kan markere dem men intet andet ..
når man trykker på knappen skriver den en fejl i IE .. i linje 67
Avatar billede juks Novice
25. april 2005 - 13:54 #9
<?php
include 'db.inc';

// TJEKKER OM DER SKAL SLETTES
if($delete){
    $ids = explode(',',$_GET['ids']);
    for($i=0; $i<sizeof($ids); $i++) {
        $wheresql .= "idbruger = ".$ids[$i]." ";
        if(sizeof($ids)-1 != 1) {
            $wheresql .= "OR ";
        }

    }

        mysql_query("DELETE * FROM users2 WHERE ".$wheresql);
    echo ("Slettet!");
}

?>

<html>

<body>


<?
  // HENTER ALLE BRUGERE FRA DB
  $q = mysql_query("select * from users2 ");

  // SKRIVER ALLE BRUGERE UD
  while($r = mysql_fetch_array($q)) {
      // Laver en string med Id'er der skal tjekkes:
      $ids .= "\"".$r['idbruger']."\",";
  ?>

    <input type="checkbox" name="<?=$r['idbruger']?>" id="<?=$idbruger?>"> <?=$user_name?> - <?=$Fornavn?> <?=$efternavn?><br />

  <?}?>

    <button onclick="java script:getMarkedSend();">Slet markerede brugere</button>

    <script>

        function getMarkedSend() {

            idsar = new Array(<?=$ids?>);
            for(i = 0; i < idsar.length; i++) {

                if(document.getElementById(idsar[i]).value == 'on') {
                    markedids = concat(markedids,i+",");
                }
            }

            window.open('?delete=true&ids='+markedids,'_self');

        }
    </script>




</body>

</html>
-----------------


data dump
CREATE TABLE `users2` (
  `aut` int(11) NOT NULL auto_increment,
  `user_name` varchar(15) NOT NULL default '',
  `password` varchar(15) NOT NULL default '',
  `email` varchar(60) NOT NULL default '',
  `adm` int(1) default '0',
  `fornavn` text,
  `efternavn` text NOT NULL,
  `adresse` text NOT NULL,
  `postnr` int(4) NOT NULL default '0',
  `bynavn` text NOT NULL,
  `baadnavn` text,
  `baadtype` text,
  `tekst` text,
  PRIMARY KEY  (`aut`),
  UNIQUE KEY `user_name` (`user_name`)
) TYPE=MyISAM AUTO_INCREMENT=59 ;

--
-- Data dump for tabellen `users2`
Avatar billede kasperbn Nybegynder
25. april 2005 - 15:13 #10
Ok, jeg kan se at det må være noget med field-navnene.

1. Erstat alle forekomster af "idbruger" med "aut"

2. Erstat:
<input type="checkbox" name="<?=$r['idbruger']?>" id="<?=$idbruger?>"> <?=$user_name?> - <?=$Fornavn?> <?=$efternavn?><br />
med
<input type="checkbox" name="<?=$r['aut']?>" id="<?=$r['aut']?>"> <?=$r['user_name']?> - <?=$r['fornavn']?> <?=$r['efternavn']?><br />

Husk at der forskel på "Fornavn" og "fornavn"!!!
Så det hele bliver til:
-------------------------------------------------------------------------------
<?php
include 'db.inc';

// TJEKKER OM DER SKAL SLETTES
if($delete){
    $ids = explode(',',$_GET['ids']);
    for($i=0; $i<sizeof($ids); $i++) {
        $wheresql .= "aut = ".$ids[$i]." ";
        if(sizeof($ids)-1 != 1) {
            $wheresql .= "OR ";
        }

    }

        mysql_query("DELETE * FROM users2 WHERE ".$wheresql);
    echo ("Slettet!");
}

?>

<html>

<body>


<?
  // HENTER ALLE BRUGERE FRA DB
  $q = mysql_query("select * from users2 ");

  // SKRIVER ALLE BRUGERE UD
  while($r = mysql_fetch_array($q)) {
      // Laver en string med Id'er der skal tjekkes:
      $ids .= "\"".$r['aut']."\",";
  ?>

    <input type="checkbox" name="<?=$r['aut']?>" id="<?=$r['aut']?>"> <?=$r['user_name']?> - <?=$r['fornavn']?> <?=$r['efternavn']?><br />

  <?}?>

    <button onclick="java script:getMarkedSend();">Slet markerede brugere</button>

    <script>

        function getMarkedSend() {

            idsar = new Array(<?=$ids?>);
            for(i = 0; i < idsar.length; i++) {

                if(document.getElementById(idsar[i]).value == 'on') {
                    markedids = concat(markedids,i+",");
                }
            }

            window.open('?delete=true&ids='+markedids,'_self');

        }
    </script>




</body>

</html>
Avatar billede kasperbn Nybegynder
25. april 2005 - 15:46 #11
Hej Juks. Nu har jeg oprettet en database og kørt det igennem. Det virker nu med følgende kode og din database:
----------------------------------------------
<?php
include 'db.inc';

// TJEKKER OM DER SKAL SLETTES
if($delete){

    $ids = explode(',',$_POST['ids']);
    for($i=0; $i<(sizeof($ids)-1); $i++) {
        $wheresql .= "aut = ".$ids[$i]." ";
        if(sizeof($ids)-1 != 1) {
            $wheresql .= "OR ";
        }

    }
   
    mysql_query("DELETE FROM users2 WHERE ".$wheresql);
    echo ("Slettet!");
}

?>

<html>

<body>

<form action="?" method="post">

<?
  // HENTER ALLE BRUGERE FRA DB
  $q = mysql_query("select * from users2 ");

  // SKRIVER ALLE BRUGERE UD
  while($r = mysql_fetch_array($q)) {
      // Laver en string med Id'er der skal tjekkes:
      $ids .= $r['aut'].",";
  ?>

    <input type="checkbox" name="<?=$r['aut']?>" id="<?=$r['aut']?>"> <?=$r['user_name']?> - <?=$r['fornavn']?> <?=$r['efternavn']?><br />
   
  <?}?>

    <input type="hidden" name="ids" value="<?=$ids?>">
    <input type="submit" name="delete" value="Slet markerede brugere">
   
    </form>

</body>

</html>
Avatar billede kasperbn Nybegynder
25. april 2005 - 15:58 #12
Ok, det går ikke skide godt det her, men nu prøver jeg altså lige igen. Den fra før virker kun hvis du har én bruger. Denne her skulle meget gerne virke 100% ellers bliver jeg vanvittig:
______________________________________________________________________________
<?php
include 'db.inc';

// TJEKKER OM DER SKAL SLETTES
if($delete){

    $ids = explode(',',$_GET['ids']);
    for($i=0; $i<(sizeof($ids)-1); $i++) {
        if($_GET[$ids[$i]] == 'on') {
            $wheresql .= "aut = ".$ids[$i]." OR ";
        }
    }
   
    $wheresql .= "aut = 999999999999999999";
 
    mysql_query("DELETE FROM users2 WHERE ".$wheresql);
    echo ("Slettet!");
}

?>

<html>

<body>

<form action="?" method="get">

<?
  // HENTER ALLE BRUGERE FRA DB
  $q = mysql_query("select * from users2 ");

  // SKRIVER ALLE BRUGERE UD
  while($r = mysql_fetch_array($q)) {
      // Laver en string med Id'er der skal tjekkes:
      $idsar .= $r['aut'].",";
  ?>

    <input type="checkbox" name="<?=$r['aut']?>" id="<?=$r['aut']?>"> <?=$r['user_name']?> - <?=$r['fornavn']?> <?=$r['efternavn']?><br />
   
  <?}?>

    <input type="hidden" name="ids" value="<?=$idsar?>">
    <input type="submit" name="delete" value="Slet markerede brugere">
   
    </form>

</body>

</html>
Avatar billede juks Novice
26. april 2005 - 09:47 #13
ja lige bortset fra den ikke sletter når man trykke slet ..
Avatar billede juks Novice
26. april 2005 - 10:30 #14
tak for hjælpen med lidt ændringer virker den nu::
Avatar billede juks Novice
26. april 2005 - 10:30 #15
løsning:
<?php
include 'db.inc';

// TJEKKER OM DER SKAL SLETTES
if(isset($_GET["delete"])){

    $ids = explode(',',$_GET['ids']);
    for($i=0; $i<(sizeof($ids)-1); $i++) {
        if($_GET[$ids[$i]] == 'on') {
        if (isset($wheresql)) {
                $wheresql .= " OR ";
            }
            $wheresql .= "aut='".$ids[$i]."'";
        }
    }



  mysql_query("DELETE  FROM users2 WHERE ".$wheresql) ;
  echo ("DELETE  FROM users2 WHERE ".$wheresql) ;
  echo  ("Slettet!");
}

?>



<form action="?" method="get">

<?
  // HENTER ALLE BRUGERE FRA DB
  $q = mysql_query("select * from users2 ");

  // SKRIVER ALLE BRUGERE UD
  while($r = mysql_fetch_array($q)) {
      // Laver en string med Id'er der skal tjekkes:
      $idsar .= $r['aut'].",";
  ?>

    <input type="checkbox" name="<?=$r['aut']?>" id="<?=$r['aut']?>"> <?=$r['user_name']?> - <?=$r['fornavn']?> <?=$r['efternavn']?><br />

  <?}?>

    <input type="hidden" name="ids" value="<?=$idsar?>">
    <input type="submit" name="delete" value="Slet markerede brugere">
<input type="hidden" name="pageid" value="slet_bruger">

    </form>
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