In een ander topic had ik het al over hoe ik een treeview volledig "uitgevouwen" kon laten weergeven. Via een handig linkje van een vriendelijke got-er kwam ik terecht bij een stukje php-code:
Nu moest ik dit in asp krijgen en dat ging vrij goed tot ik op deze error stootte:
This array is fixed or temporarily locked: 'rij'
Dus omdat ik telkens opnieuw de array rij gebruik en dit niet kan (want reeds in gebruik) krijg ik een error.
Ik kan niet direct aan op een oplossing kome want mijn tree gaat een onbepaald aantal niveau's diep.
Dit is mijn code (eerste versie dus nog wat 'slordig')
Ik weet dat de variabele einde eigenlijk niets voorstelt en geefchilds eigenlijk beter een functie zou zijn
EDIT: Voor de codezoekers: de oplossing staat onderaan
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <?php // $parent is the parent of the children we want to see // $level is increased when we go deeper into the tree, // used to display a nice indented tree function display_children($parent, $level) { // retrieve all children of $parent $result = mysql_query('SELECT title FROM tree '. 'WHERE parent="'.$parent.'";'); // display each child while ($row = mysql_fetch_array($result)) { // indent and display the title of this child echo str_repeat(' ',$level).$row['title']."\n"; // call this function again to display this // child's children display_children($row['title'], $level+1); } } ?> |
Nu moest ik dit in asp krijgen en dat ging vrij goed tot ik op deze error stootte:
This array is fixed or temporarily locked: 'rij'
Dus omdat ik telkens opnieuw de array rij gebruik en dit niet kan (want reeds in gebruik) krijg ik een error.
Ik kan niet direct aan op een oplossing kome want mijn tree gaat een onbepaald aantal niveau's diep.
Dit is mijn code (eerste versie dus nog wat 'slordig')
ASP:
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
| Set cnDB = OpenDB() Dim rsData ' As ADODB.Recordset Dim strSQL ' As String Dim strURL ' As String Dim rij Set rsData = Server.CreateObject("ADODB.Recordset") Response.write(geefchilds(0,0)) Function geefchilds(parent, level) Response.write(Parent&level) rsData.open "SELECT * From Links Where Parent=" & parent, cnDB, adOpenStatic rij = rsData.GetRows() rsData.close iRecFirst = LBound(rij, 2) iRecLast = UBound(rij, 2) For I = iRecFirst To iRecLast Response.write(herhstring(" ", level) & rij(2,I)) einde= einde & geefchilds(rij(6,I), level+1) Next ' I geefchilds=einde End Function Set rsData= nothing |
Ik weet dat de variabele einde eigenlijk niets voorstelt en geefchilds eigenlijk beter een functie zou zijn
EDIT: Voor de codezoekers: de oplossing staat onderaan
[ Voor 8% gewijzigd door Verwijderd op 26-01-2004 17:51 ]