Select vullen met items uit de database binnen foreach loop lukt niet!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Furio Scripting

Furio Scripting

11/07/2013 14:59:22
Quote Anchor link
Beste forum leden,

Ik zit al een aantal uren mezelf te frustreren waatrom dit niet wilt lukken:

Ik heb een functie die een html tabel genereerd met daarin database values, nu wil ik in deze tabel een select box hebben met daarin alle pagina's. Nu krijg ik het wel voor elkaar alle pagina's weer te geven maar nu weergeeft die er maar eentje ( wel steeds de volgende ) in iedere select box en dus niet alle pagina's.

Ik wil dus een selext hebben met daarin alle pagina's uit de database en deze in de tabel kunnen wergeven zodat men een pagina kan kiezen en ik deze later kan opslaan.

Hier is de code:

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
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
<?php function data()
    {


    $template = check_input($_POST['templates']);
    
    // load template positions
    $q = 'SELECT * FROM positions WHERE template = "'.$template.'"';
    $result = mysql_query($q) or die(mysql_error());
    
    $positions = array();
    
    while ($rows = mysql_fetch_array($result))
    {

        $positions[] = $rows['position'];

    }

    
    // load content
    $q = 'SELECT * FROM pages';
    $result = mysql_query($q) or die(mysql_error());
    
    $pages = array();
    
    while ($rows = mysql_fetch_array($result))
    {

        
        $pages[] = '<option value='.$rows['id'].'>'.$rows['title'].'</option>';

    }

    
    
    
    echo '<table id="layout" class="tablesorter"><thead>
    <tr>
    <th><input type="checkbox" name="checkall" onclick="check_all(this)"> </th>
    <th>Show content</th>
    <th>in position</th>
    <th>Creation date</th>
    <th>Status</th>
    <th>Sort</th>
    </tr>
    </thead><tbody>'
;
    
    foreach ($positions as $positionNames)
    {

        foreach ($pages as $pageTitles)
        {



        echo '<tr>';
        echo '<td><input type=checkbox name=page[] id=12 value=2></td>';
        echo '<td>';
        echo '<select>';
        
        echo $pageTitles;

        echo '<select>';
             
        echo '</td>';

        echo '<td></td>';
        
        echo '</tr>';

        }
    }

    


    echo "</tbody> </table>";
    
    
    }
?>
Gewijzigd op 11/07/2013 15:00:16 door Furio Scripting
 
PHP hulp

PHP hulp

25/12/2024 15:19:42
 
Kris Peeters

Kris Peeters

11/07/2013 15:13:07
Quote Anchor link
Om te beginnen, twee dingen:
- lijn 57:
dat moet </select> zijn. Anders kan ik me voorstellen dat dat serieuze problemen kan geven.

- lijn 51:
'<input type=checkbox name=page[] id=12 value=2>'
een id moet absoluut uniek zijn. id=12 kan dus onmogelijk in een lus zitten.

----
Ik snap niet precies wat het probleem is dat je hebt. Nu, zie al voor die twee die ik noem, en laat nog iets weten als er nog iets is
Gewijzigd op 11/07/2013 15:13:32 door Kris Peeters
 
N K

N K

11/07/2013 15:21:29
Quote Anchor link
Moet mysql_fetch_array niet mysql_fetch_assoc zijn?
 
Erwin H

Erwin H

11/07/2013 15:22:30
Quote Anchor link
Nou ja, het probleem zou wellicht kunnen zijn dat TS een array opzet waarin alle options komen ($pages). Over die array laat hij een foreach lopen en BINNEN die foreach maakt hij telkens de select aan.... dus in plaats van 1 select met tig pages, krijgt hij nu tig selects met elk 1 page. Lijkt me niet helemaal de bedoeling.
Dit zal denk ik meer resultaat opleveren
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
<?php
    foreach ($positions as $positionNames)
    {

        echo '<tr>';
        echo '<td><input type=checkbox name=page[] id=12 value=2></td>';
        echo '<td>';
        echo '<select>';

        foreach ($pages as $pageTitles)
        {

            echo $pageTitles;
        }


        echo '</select>';            
        echo '</td>';
        echo '<td></td>';        
        echo '</tr>';
    }

?>
Gewijzigd op 11/07/2013 15:23:01 door Erwin H
 
Furio Scripting

Furio Scripting

11/07/2013 15:56:52
Quote Anchor link
Erwin H op 11/07/2013 15:22:30:
Nou ja, het probleem zou wellicht kunnen zijn dat TS een array opzet waarin alle options komen ($pages). Over die array laat hij een foreach lopen en BINNEN die foreach maakt hij telkens de select aan.... dus in plaats van 1 select met tig pages, krijgt hij nu tig selects met elk 1 page. Lijkt me niet helemaal de bedoeling.
Dit zal denk ik meer resultaat opleveren
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
<?php
    foreach ($positions as $positionNames)
    {

        echo '<tr>';
        echo '<td><input type=checkbox name=page[] id=12 value=2></td>';
        echo '<td>';
        echo '<select>';

        foreach ($pages as $pageTitles)
        {

            echo $pageTitles;
        }


        echo '</select>';            
        echo '</td>';
        echo '<td></td>';        
        echo '</tr>';
    }

?>



Perfect bedankt! Weer iets geleerd.
 
Kris Peeters

Kris Peeters

11/07/2013 16:26:30
Quote Anchor link
en nu nog die id=12 uit de lus halen
 
Furio Scripting

Furio Scripting

11/07/2013 17:26:14
Quote Anchor link
Kris Peeters op 11/07/2013 16:26:30:
en nu nog die id=12 uit de lus halen


Ja dat stond er meer voor test effies, was nog bezig met de foreach issues maar alles staat nu zoals het hoort.
 



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.