[PHP][HTML][JS] post interactive multiple select

Pagina: 1
Acties:
  • 45 views sinds 30-01-2008

  • youngster
  • Registratie: Maart 2004
  • Laatst online: 20-05-2025
Ik heb al verschillende topics hierover gelezen maar kan mijn probleem toch nog niet opgelost krijgen.
Dmv dit script moeten users aan groups kunnen worden toegevoegd en verwijderd. Na het posten wil ik alle waarden uit de tabel members hebben (niet alleen de selected) maar krijg dit niet voor elkaar. Graag enige hulp.

code:
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
//require_once 'include.inc.php';
if(isset($_POST['submit'])){
    echo "Here should the list of members (right column) be printed!";
}
?>

<SCRIPT LANGUAGE="JavaScript">
<!-- 

function moveOver() {
   var boxLength = document.usergroup.members.length;
   var selectedItem = document.usergroup.users.selectedIndex;
   var selectedText = document.usergroup.users.options[selectedItem].text;
   var selectedValue = document.usergroup.users.options[selectedItem].value;
   var i;
   var isNew = true;
   if (boxLength != 0) {
     for (i = 0; i < boxLength; i++) {
       thisitem = document.usergroup.members.options[i].text;
       if (thisitem == selectedText) {
         isNew = false;
         break;
       }
     }
   } 
   if (isNew) {
     newoption = new Option(selectedText, selectedValue, false, false);
     document.usergroup.members.options[boxLength] = newoption;
   }
   document.usergroup.users.selectedIndex=-1;
}

function removeMe() {
   var boxLength = document.usergroup.members.length;
   arrSelected = new Array();
   var count = 0;
   for (i = 0; i < boxLength; i++) {
     if (document.usergroup.members.options[i].selected) {
       arrSelected[count] = document.usergroup.members.options[i].value;
     }
     count++;
   }
   var x;
   for (i = 0; i < boxLength; i++) {
     for (x = 0; x < arrSelected.length; x++) {
       if (document.usergroup.members.options[i].value == arrSelected[x]) {
         document.usergroup.members.options[i] = null;
       }
     }
     boxLength = document.usergroup.members.length;
   }
}


// -->
</script>

<?php
//$result1 = querydb("SELECT userID, firstName FROM user");
//$result2 = querydb('SELECT user.userID, firstName FROM user, user_group WHERE user.userID = user_group.userID and user_group.groupID = "1"');
?>

<form name="usergroup" method="post" action="test3.php">

<table>
<tr>
    <td>Users:</td>
    <td>Groupmembers:</td>
</tr>
<tr>
    <td>
        <select name="users" size=10 onchange="moveOver();">
        <?php
        //for($i=0; $i<count($result1); $i++){
            //echo('<option value='.$result1[$i]->userID.'>'.$result1[$i]->firstName.'</option>');
        //}
        echo ('<option value="piet">Piet</option>');
        echo ('<option value="jan">Jan</option>');
        echo ('<option value="klaas">Klaas</option>');
        echo ('<option value="rene">Rene</option>');
        echo ('<option value="gerrit">Gerrit</option>');
        echo ('<option value="dirk">Dirk</option>');
        ?>
        </select>
    </td>
    <td>
        <select multiple name="members" style="width:150;" size="10" onchange="removeMe();">
        <?php
        //for($i=0; $i<count($result2); $i++){
            //echo('<option value='.$result2[$i]->userID.'>'.$result2[$i]->firstName.'</option>');
        //}
        echo ('<option value="piet">Piet</option>');
        echo ('<option value="jan">Jan</option>');
        echo ('<option value="klaas">Klaas</option>');
        ?>

        </select>
    </td>
</tr>
<tr>
    <td><input type="submit" name="submit" value="    OK    "></td>
</tr>
</form>

Real programmers don't comment their code... it was hard to write, it should be hard to read!


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 23:30

NMe

Quia Ego Sic Dico.

Geef de selects de namen "users[]" en "members[]" in plaats van "users" en "members". Je geeft immers een array mee.

Geen optimale topic start trouwens.

[ Voor 18% gewijzigd door NMe op 03-03-2004 15:14 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • youngster
  • Registratie: Maart 2004
  • Laatst online: 20-05-2025
Geef de selects de namen "users[]" en "members[]" in plaats van "users" en "members". Je geeft immers een array mee.
Als ik dat doe werkt het javascript niet meer en krijg ik ook alleen maar de selected waardes gepost.

Real programmers don't comment their code... it was hard to write, it should be hard to read!


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

Een selectbox is bedoeld om 1 of meerdere resultaten uit een lijst te selecteren. Een formulier post dus alleen de waarden die geselecteerd zijn. Als je de listbox ombouwt tot iets dergelijk gaat die functionaliteit verloren en die zul je dus op moeten vangen.

Het makkelijkste (zo doe ik het ook :P) is bij iedere wijziging de lijst(en) even komma-seperated in een hidden input te schrijven. Die stuurt ie mee en kun je serverside weer uitlezen.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 23:30

NMe

Quia Ego Sic Dico.

youngster schreef op 03 maart 2004 @ 15:16:
Als ik dat doe werkt het javascript niet meer en krijg ik ook alleen maar de selected waardes gepost.
Dan moet je wat aan je JavaScript doen zodat die ook overweg kan met die array. En je kan alleen maar de geselecteerde waardes posten, dat is juist het hele idee achter een select.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01:00

.oisyn

Moderator Devschuur®

Demotivational Speaker

youngster schreef op 03 maart 2004 @ 15:12:
Ik heb al verschillende topics hierover gelezen maar kan mijn probleem toch nog niet opgelost krijgen.
Dmv dit script moeten users aan groups kunnen worden toegevoegd en verwijderd. Na het posten wil ik alle waarden uit de tabel members hebben (niet alleen de selected) maar krijg dit niet voor elkaar. Graag enige hulp.
Graag enige info
Wij gaan je scripts niet debuggen, dat mag je helemaal zelf doen :), zie ook P&W FAQ - De "quickstart"

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.