Forum » Client-Side scripting » Checkbox andere laten checken?
Berichten: 849
avatar
Offline Stuur privebericht
Hoi,
Ik zit weer met een probleem (wat vaker gaat gebeuren aangezien ik nu erg druk ben ;p).
Ik heb een lijst met checkboxjes, lanks een berichtensysteem, en nu wil ik dat hij de geselecteerde verwijderd. Alleen, ten 1e: Hoe doe ik dat, ik heb ze nu allemaal een oplopend nummer gegeven, maar hoe verwijder ik die.

Laatst gewijzigd door Perrytje11 op 2011-08-15 07:58:02
15-08-2011 07:42
Dit topic is 301 keer bekeken door 41 verschillende leden
Reacties op: "Checkbox andere laten checken?"
1 | 2 Volgende pagina
Berichten: 409
avatar
Online Stuur privébericht
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<script language="javascript">
    function checkAll(elementFrm) {
        for (i = 0; i < elementFrm.length; i++)    {
            if(elementFrm.elements[i].type == "checkbox")
                elementFrm.elements[i].checked = true;
        }
    }

    function uncheckAll(elementFrm)    {
        for (i = 0; i < elementFrm.length; i++) {
            if(elementFrm.elements[i].type == "checkbox")
                elementFrm.elements[i].checked = false;
        }
    }

    function toogle(elementFrm){

        var d = 1;

        var j = 0;

        for(i = 0; i < elementFrm.length; i++){
            if(elementFrm.elements[i].type == "checkbox"){
                j = j + 1;
                if(elementFrm.elements[i].checked == true){
                    d = d + 1;
                }
            }
        }

        if(d == j){
            uncheckAll(elementFrm);
        } else {
            checkAll(elementFrm);
        }

    }

</script>
<?php
if(isset($_POST['deletemsg'])){

    
$s mysql_query("SELECT `id` FROM `berichten` WHERE `ontvanger_id`=".ID) or die(mysql_error());
    while(
$r mysql_fetch_assoc($s)){
        if(isset(
$_POST['id_'.$r['id']])){
            
mysql_query("UPDATE `berichten` SET `in_inbox`=1 WHERE `id`=".$r['id']) or die(mysql_error());
        }

    }

    
$msg good("De geselecteerde berichten zijn verwijderd!");

}


?>

<tr>
        <td class='top' width='6%' style='padding: 2px;'>
            <input type='checkbox' name='check' onClick='toogle(document.form)' value='Checken' style='margin: 0px;'/>
        </td>

<tr>
        <td class='inhoud' colspan='4'>
            <input type='submit' name='deletemsg' value='Verwijder!'>
        </td>
    </tr>


Het zijn verschillende stukjes die ik gepakt hebt vanaf mijn script.

15-08-2011 11:44
Berichten: 849
avatar
Offline Stuur privébericht
Bedankt, ga het nu proberen.

Edit; Mis ik iets in wat je gaf? Waar slaat ID. op?

Enkan ik ook hetgene krijgen waar je de 1e keer de checkbox meegeeft?
15-08-2011 19:35
Berichten: 85
avatar
Offline Stuur privébericht
Voor mij werkt het helaas ook niet helemaal, ik heb geen idee wat ik verkeerd doe.
15-08-2011 20:50
Rapifia Europe
Berichten: 3716
avatar
Offline Stuur privébericht
Met PHP bedoel je?
Dan moet je inderdaad elk regel een input geven van de checkbox. Die noem je bijv. check1, check2, check3 e.d.
Vervolgens submit de user het formulier en dan loop je met een for lus over al die checks heen (als je er max. 10 op één pagina kan doe je dat) en daar check je dan of hij gelijk is aan "yes". Moet je als value bij die checkbox wel als waarde "yes" geven. Zoja, verwijderen, zo nee: niks mee doen.

Lijkt me vrij simpel .
15-08-2011 21:52
Berichten: 849
avatar
Offline Stuur privébericht
Klopt, dat dacht ik ook, alleen als ik dingen uit een database opvraag waar het er maximaal 100 kunnen zijn dan werkt het niet zo goed.
15-08-2011 21:56
Berichten: 409
avatar
Online Stuur privébericht
Quote: Perrytje11

Bedankt, ga het nu proberen.

Edit; Mis ik iets in wat je gaf? Waar slaat ID. op?

Enkan ik ook hetgene krijgen waar je de 1e keer de checkbox meegeeft?



ID is iets wat in mijn functies.php staan, dat roept de ID van de users op. Dat moet je dus even aanpassen

Ik heb verder even gekeken, en ik ben inderdaad een aantal dingen vergeten, ik heb nu even alles in losse delen gezet + uitleg

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<script language="javascript">
    function 
checkAll(elementFrm) {
        for (
0elementFrm.lengthi++)    {
            if(
elementFrm.elements[i].type == "checkbox")
                
elementFrm.elements[i].checked true;
        }
    }

    function 
uncheckAll(elementFrm)    {
        for (
0elementFrm.lengthi++) {
            if(
elementFrm.elements[i].type == "checkbox")
                
elementFrm.elements[i].checked false;
        }
    }

    function 
toogle(elementFrm){

        var 
1;

        var 
0;

        for(
0elementFrm.lengthi++){
            if(
elementFrm.elements[i].type == "checkbox"){
                
1;
                if(
elementFrm.elements[i].checked == true){
                    
1;
                }
            }
        }

        if(
== j){
            
uncheckAll(elementFrm);
        } else {
            
checkAll(elementFrm);
        }

    }

</script>

Is de javascript, zet je helemaal bovenaan je bestand.

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

if(isset($_POST['deletemsg'])){

    
$s mysql_query("SELECT `id` FROM `berichten` WHERE `ontvanger_id`=".ID) or die(mysql_error());
    while(
$r mysql_fetch_assoc($s)){
        if(isset(
$_POST['id_'.$r['id']])){
            
mysql_query("UPDATE `berichten` SET `in_inbox`=1 WHERE `id`=".$r['id']) or die(mysql_error());
        }

    }

    
$msg good("De geselecteerde berichten zijn verwijderd!");

}


?>

Deze zet je onder de javascript.

Code | Selecteer Alles
minimaliseren
1
2
3
4
tr>
        <
td class='top' width='6%' style='padding: 2px;'>
            <
input type='checkbox' name='check' onClick='toogle(document.form)' value='Checken' style='margin: 0px;'/>
        </
td>

Dit is een vakje, dat als je erop klikt hij ALLE vakjes aanklikt, dit zit je dus in je tabel.

Code | Selecteer Alles
minimaliseren
1
2
3
4
<tr>
        <
td class='inhoud_c' width='6%'>
            <
input type='checkbox' name='id_".$res['id']."' value='".$res['id']."' style='margin: 0px;'/>
        </
td>

Dit echo je naast je bericht, zodat je dus een vakje krijg naast je bericht(en) met dit kies je dus maar 1 berichtje (of meerdere) inplaats van alle.

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
<tr>
        <
td class='inhoud' colspan='4'>
            <
input type='submit' name='deletemsg' value='Verwijder!'>
        </
td>
    </
tr>

Dat zet je onderaan je tabel.
16-08-2011 10:27
Berichten: 849
avatar
Offline Stuur privébericht
Het lukt niet, ik heb nu dit:
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?

if(isset($_POST['ontslaan'])){
$select mysql_query("SELECT * FROM `arbeiders_bezit` WHERE `bezit_van`='".$data->id."'");
while(
$delete mysql_fetch_object($select)){
if(isset(
$_POST['id_'.$delete->id.''])){
    
goed("Gelukt!");
    }
    }
}
$select mysql_query("SELECT * FROM `arbeiders_bezit` WHERE `bezit_van`='".$data->id."'");
while(
$info mysql_fetch_object($select)){
$i1 0;
?>
                    </tr>
                    <tr>
                    <form name="form" method="post" action="">

                    <td><input type="checkbox"  name="id" id="id" value="id_<?echo$info->id;?>"/></td>
                    <td><image src="../images/icons/user_suit.png" alt=""></td>
                    <td><?echo$info->naam;?></td>
                    <td><image src="../images/icons/heart.png" alt=""></td>
                    <td><?echo$info->conditie;?></td>
                    <td><image src="../images/icons/controller_add.png" alt=""></td>
                    <td><?echo $var11111 produceren($info->conditie);?></td>
                    <td><image src="../images/icons/coins.png" alt=""></td>
                    <td><?echo$var11111*50;?></td>  

                    </tr><?$i1++;}?>
                    <tr><td>  <input type='checkbox' name='check' onClick='toogle(document.form)' value='Checken'/></td>
16-08-2011 11:55
Berichten: 409
avatar
Online Stuur privébericht
Wat gebeurd er dan precies als je iets wilt verwijderen?

En, heb je de javascript ook toegevoegd?

EDIT:

Je mist ook het stukje:

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
<tr>
        <
td class='inhoud' colspan='4'>
            <
input type='submit' name='deletemsg' value='Verwijder!'>
        </
td>
    </
tr>
16-08-2011 12:46
Berichten: 849
avatar
Offline Stuur privébericht
Als ik iets wil verwijderen, zoals het eruit ziet: Niks, de pagina reload. En als ik print$_POST; doe dan krijg ik eruit: "Array".
Ja, javascript toegevoegd.
@Dat laatste, ik heb mijn eigen, genaamd ontslaan, maar die staat nog 1 regel beneden.
16-08-2011 12:54
Berichten: 409
avatar
Online Stuur privébericht
Ik snap niet echt waarom hij nou niet werkt
16-08-2011 13:15
Reageer op: "Checkbox andere laten checken?"
1 | 2 Volgende pagina
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden