Items in een dropdownl list zetten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ceesietopc

Ceesietopc

10/12/2007 14:40:00
Quote Anchor link
Hallo iedreen,

ik heb hier een probleempje, en ik heb het idee dat ik er heel dicht bij ben, maar dat ik gewoon een stukje logica mis.

Wat ik probeer te maken
Een admin pagina, waarmee ik aan kan passen:
- De volgorde van mijn menu items
- De doelpagina
- De tekst die in de knop komt

Waar gaat het fout
De doelpagina selecteren wil ik doen in een dropdown list. De verschillende items in een dropdownlist neerzetten gaat nog wel, maar het gaat fout als ik ook nog degene die op het moment gebruikt wordt, wil selecteren.

Script
Het staat in een functie, die listcontent($id) heet.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
function listcontent($linkid) {
// $id is gelijk aan de kolom listid uit de tabel pvd_menu
$sql = mysql_query('SELECT * FROM pvd_inhoud');
$output = '<select name="link_' . $linkid . '">';
// Begin de select
while($i=mysql_fetch_assoc($sql)) {
// begin met het doorlopen van de rijen
if($linkid == $i['id'] OR $linkid == 0) {
// Als het $linkid gelijk is aan het id wat op dit moment door de lus uit de tabel met inhoud wordt gehaald, of het linkid is 0, doe:
    if($linkid==0) {
// Wat als het id 0 is.
        if(empty($isleeg)) {
// Om te voorkomen dat we dubbele items in de lijst krijgen
        $output .= '<option selected="selected" value="0"></option>';
        $isleeg = true;
        }
    }
    else {
// linkid is gelijk aan het id uit de inhoud tabel, echo de geselecteerde optie
    $output .= '<option selected="selected" value="' . $linkid . '">' . $i['name'] . '</option>';
    }
}
else {
// Is een item in de tabel, maar moet niet geselecteerd worden.
$output .= '<option value="' . $linkid . '">' . $i['name'] . '</option>';
}
}
    if(empty($isleeg)) {
// De keuze leeg moet er sowieso zijn
    $output .= '<option value="0"></option>';
    }
$output .= '</select>';
return $output;
}


Tabel opbouw
Twee tabellen: pvd_inhoud en pvd_menu
pvd_menu bestaat uit een id, voor als een item verandert moet worden, een linkid (waar de link naartoe wijst), en een tekst.

In pvd_inhoud staat alleen een kolom id, en een kolom tekst.

Het probleem:
Afbeelding
De onderste twee menu items hebben een linkid die 0 is. Ze linken dus nog nergens naar.
Het lijkt erop dat de while lus de andere items er niet bij zet, als het linkid 0 is. Waarom?

Alvast bedankt
 
PHP hulp

PHP hulp

19/04/2024 19:57:41
 
Crispijn -

Crispijn -

10/12/2007 15:00:00
Quote Anchor link
Oke, even voor de duidelijkheid: Je hebt nooit een menu-item dubbel in je menu staan?
 
Ceesietopc

Ceesietopc

10/12/2007 16:28:00
Quote Anchor link
Het moet een soort cms systeem worden.. dus het moet in princiepe gewoon mogelijk zijn om 2 dezelfde menu items te hebben.

Maar het idee er achter is niet echt het probleem ;) waarom zou mn while niet verder gaan??
 
Crispijn -

Crispijn -

10/12/2007 16:38:00
Quote Anchor link
Nou, ik denk dan dat op dit moment je database structuur al niet optimaal is. Ga eens normaliseren :)
 

10/12/2007 17:06:00
Quote Anchor link
Ceesietopc schreef op 10.12.2007 14:40:
maar dat ik gewoon een stukje logica mis.

Crispijn schreef op 10.12.2007 16:38:
Nou, ik denk dan dat op dit moment je database structuur al niet optimaal is. Ga eens normaliseren :)

Hoe roep je die vode eigenlijk aan toevallig zo: listcontent();?
Verder vind ik je code nogal raar, van opbouw en wat je nou allemaal doet.
 
Ceesietopc

Ceesietopc

10/12/2007 17:07:00
Quote Anchor link
Dit lijkt mij de simpelste opbouw, maar als er betere ideeën zijn ;)
Ik roep de code op in een ander script, gewoon echoen in een td
 

10/12/2007 19:16:00
Quote Anchor link
Ceesietopc schreef op 10.12.2007 17:07:
Ik roep de code op in een ander script, gewoon echoen in een td

Laat eens zien.
 
Ceesietopc

Ceesietopc

10/12/2007 20:31:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$uitvoer
= mysql_query("SELECT * FROM pvd_menu");
while($i = mysql_fetch_assoc($uitvoer)) {
echo '<tr><td><input name="id_' . $i["id"] . '" type="text" class="id" value="' . $i["volgorde"] . '" /></td><td>' . listcontent($i['linkid']) . '</td><td><input name="tekst_' . $i["id"] . '" type="text" class="id" value="' . $i["tekst"] . '" /></td></tr>';
}

?>

Dit maakt het tabelletje wat je in mn screenie ziet.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.