Select vullen met items uit de database binnen foreach loop lukt niet!
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)
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
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>";
}?>
{
$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
- 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
Moet mysql_fetch_array niet mysql_fetch_assoc zijn?
Dit zal denk ik meer resultaat opleveren
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Gewijzigd op 11/07/2013 15:23:01 door Erwin H
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
Dit zal denk ik meer resultaat opleveren
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Perfect bedankt! Weer iets geleerd.
en nu nog die id=12 uit de lus halen
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.