Loop vast met beheerpagina's
ik wil een pagina maken met daarin wat gegevens uit de database. Weergegeven in een tabel...dat lukt! Laatste kolom is dan een 'edit'.
Nu wil ik graag dat als ik die edit aanklik, dat ik dan de velden in tekstvelden krijg zodat ik kan wijzigen/toevoegen. Ik krijg dit niet goed....de velden blijven/zijn leeg.
Heeft iemand een voorbeeld? Anders kan/wil ik hier wel de code posten, maar is dat leesbaar?
Herbert
Zet de relevante code hier even neer, kunnen we meer mee. Dus waar je de informatie uit de database haalt en waar je de informatie in het formulier zet.
Ik bespreek alleen even de stappen, de daadwerkelijke uitvoering moet je zelf even doen. Mocht je daarbij problemen hebben dan zijn we daar om te helpen.
1. In je Edit link neem je de id op van je gegevens
2. Op pagina bewerk.php zet je als eerst een controle of de id is opgegeven.
Dan maak je een Query waarbij je de gegevens ophaalt met de gewenste id.
Je zet dus in je Query een:
WHERE id ='".mysql_real_escape_string($_GET[ 'id' ])."' ";
3. Bij de input velden zet je in de value:
Dit moet je een redelijk zet in de goede richting geven.
Hertog Jan op 03/05/2012 17:37:39:
Zet de relevante code hier even neer, kunnen we meer mee. Dus waar je de informatie uit de database haalt en waar je de informatie in het formulier zet.
Hoe kan ik dat 't beste doen...dat 't ook leesbaar is!?
Gewijzigd op 03/05/2012 20:40:52 door Nick Dijkstra
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
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?php
//voor weergeven van errors/warnings
ini_set('display_errors',1);
error_reporting(E_ALL);
session_start();
if (isset($_SESSION["username"]))
{
?>
<html>
<head>
<title>testpagina</title>
</head>
<style type="text/css">
body {
background: #ffffff;
font-family: Tahoma;
font-size: 12px;
}
h1 {
font-size: 14px;
}
table, td, tr {
font-size: 12px;
bordercolor: #000000;
border: 1px dashed;
}
.td_header {
background-color: #CCCCCC;
font-weight: bold;
}
img {
border: 0px;
}
</style>
<body>
<h1>testpagina</h1>
<img src=images/edit.png> Wijzigen <br /><br />
<table width="800px">
<tr>
<td class = "td_header">Id</td>
<td class = "td_header">Pagina</td>
<td class = "td_header">Titel</td>
<td class = "td_header">Omschrijving</td>
<td class = "td_header">Zoekwoorden</td>
<td class = "td_header"></td>
</tr>
<?
$sql = "SELECT * FROM metadata ORDER BY id ASC";
$query = mysql_query($sql);
while($rij = mysql_fetch_assoc($query)) {
$id = $rij['id'];
$pagina = $rij['pagina'];
echo "<tr>\n";
echo "<td width=\"4%\">".$id."</td>\n";
echo "<td width=\"10%\">".$rij['pagina']."</td>\n";
echo "<td width=\"30%\">".$rij['titel']."</td>\n";
echo "<td width=\"30%\">".$rij['description']."</td>\n";
echo "<td width=\"30%\">".$rij['keywords']."</td>\n";
echo "<td width=\"3%\"><a href=\"editmetadata.php?action=edit&id=".$id."\"><img src=\"images/edit.png\"></a></td>\n";
echo "</tr>\n";
}
?>
</table><br />
<hr>
<?
if(isset($_GET['action'])) {
$action=$_GET['action'];
}
switch ($action){
case "edit":
//gegevens ophalen uit db
$sql = "SELECT * FROM metadata WHERE id =$id";
$query = mysql_query($sql);
while($rij = mysql_fetch_assoc($query)) {
$id = $rij['id'];
$pagina = $rij['username'];
$titel = $rij['naam'];
$description = $rij['email'];
$Keywords = $rij['keywords'];
}
?>
<form name="edituser" method="post" action="editmetadata.php?action=edit">
<p>Titel: <input type="text" name="titel" value="<?=$titel?>">
</p>
<p>Omschrijving: <input type="text" name="description" value="<?=$description?>">
</p>
<p>Zoekwoorden: <input type="text" name="keywords" value="<?=$keywords?>">
</p>
<p>
<input type="submit" name="Submit2" value="Wijzigen">
</p>
</form>
<?
//toevoegen van user in db
if($_SERVER['REQUEST_METHOD'] == "POST") {
//$naam = mysql_real_escape_string($_POST['naam']);
$sql = "UPDATE metadata SET titel='".$_POST['titel']."', description='".$_POST['description']."', keywords='".$_POST['keywords']."' WHERE id='".$id."'";
$query = mysql_query($sql);
$tekst = "pagina " .$pagina ." is gewijzigd";
?><meta http-equiv="refresh" content="2;URL=editmetadata.php"><?
}
break;
default:
echo "In bovenstaand overzicht ziet u enkele metadata. U kunt deze hier wijzigen.";
break;
} //einde van de switch
echo $tekst;
?>
<?php
}
else{
$text = "U bent niet goed ingelogd, U gaat terug naar de loginpagina";
echo($text);
?>
<meta http-equiv="refresh" content="1;URL=index.php">
<?
}
?>
</body>
</html>
//voor weergeven van errors/warnings
ini_set('display_errors',1);
error_reporting(E_ALL);
session_start();
if (isset($_SESSION["username"]))
{
?>
<html>
<head>
<title>testpagina</title>
</head>
<style type="text/css">
body {
background: #ffffff;
font-family: Tahoma;
font-size: 12px;
}
h1 {
font-size: 14px;
}
table, td, tr {
font-size: 12px;
bordercolor: #000000;
border: 1px dashed;
}
.td_header {
background-color: #CCCCCC;
font-weight: bold;
}
img {
border: 0px;
}
</style>
<body>
<h1>testpagina</h1>
<img src=images/edit.png> Wijzigen <br /><br />
<table width="800px">
<tr>
<td class = "td_header">Id</td>
<td class = "td_header">Pagina</td>
<td class = "td_header">Titel</td>
<td class = "td_header">Omschrijving</td>
<td class = "td_header">Zoekwoorden</td>
<td class = "td_header"></td>
</tr>
<?
$sql = "SELECT * FROM metadata ORDER BY id ASC";
$query = mysql_query($sql);
while($rij = mysql_fetch_assoc($query)) {
$id = $rij['id'];
$pagina = $rij['pagina'];
echo "<tr>\n";
echo "<td width=\"4%\">".$id."</td>\n";
echo "<td width=\"10%\">".$rij['pagina']."</td>\n";
echo "<td width=\"30%\">".$rij['titel']."</td>\n";
echo "<td width=\"30%\">".$rij['description']."</td>\n";
echo "<td width=\"30%\">".$rij['keywords']."</td>\n";
echo "<td width=\"3%\"><a href=\"editmetadata.php?action=edit&id=".$id."\"><img src=\"images/edit.png\"></a></td>\n";
echo "</tr>\n";
}
?>
</table><br />
<hr>
<?
if(isset($_GET['action'])) {
$action=$_GET['action'];
}
switch ($action){
case "edit":
//gegevens ophalen uit db
$sql = "SELECT * FROM metadata WHERE id =$id";
$query = mysql_query($sql);
while($rij = mysql_fetch_assoc($query)) {
$id = $rij['id'];
$pagina = $rij['username'];
$titel = $rij['naam'];
$description = $rij['email'];
$Keywords = $rij['keywords'];
}
?>
<form name="edituser" method="post" action="editmetadata.php?action=edit">
<p>Titel: <input type="text" name="titel" value="<?=$titel?>">
</p>
<p>Omschrijving: <input type="text" name="description" value="<?=$description?>">
</p>
<p>Zoekwoorden: <input type="text" name="keywords" value="<?=$keywords?>">
</p>
<p>
<input type="submit" name="Submit2" value="Wijzigen">
</p>
</form>
<?
//toevoegen van user in db
if($_SERVER['REQUEST_METHOD'] == "POST") {
//$naam = mysql_real_escape_string($_POST['naam']);
$sql = "UPDATE metadata SET titel='".$_POST['titel']."', description='".$_POST['description']."', keywords='".$_POST['keywords']."' WHERE id='".$id."'";
$query = mysql_query($sql);
$tekst = "pagina " .$pagina ." is gewijzigd";
?><meta http-equiv="refresh" content="2;URL=editmetadata.php"><?
}
break;
default:
echo "In bovenstaand overzicht ziet u enkele metadata. U kunt deze hier wijzigen.";
break;
} //einde van de switch
echo $tekst;
?>
<?php
}
else{
$text = "U bent niet goed ingelogd, U gaat terug naar de loginpagina";
echo($text);
?>
<meta http-equiv="refresh" content="1;URL=index.php">
<?
}
?>
</body>
</html>
Gewijzigd op 03/05/2012 21:23:02 door Herbert Foppen
Het is code met een [ en een ] ipv < >
Nick Dijkstra op 03/05/2012 21:18:08:
Het is code met een [ en een ] ipv < >
sorry...verkeerd gelezen. Aangepast
i.p.v. gewoon:
Tevens is het enige wat jij in je voorbeeld code doet de variabel in de value zetten.
Denk eraan dat php niet zichtbaar is, dit is programmeer taal die op de server wordt uitgevoerd.
Dus je zult er een echo of print voor moeten zetten, zodat de PHP engine weet dat hij het op je scherm moet afdrukken.
Gewijzigd op 04/05/2012 07:47:54 door Chris PHP
Kopiëren van variabelen. Geen geen toegevoegde waarde.
selecteer het veld/de velden, gebruik geen * in je query.
Foutafhandeling van je query ontbreekt.
Gebruik bij php (echo) ' en in html " --> scheelt een boel keer escapen.
Variabelen buiten quotes.
bedankt voor de reacties. Ik ga e.e.a. zo proberen/aanpassen.....ik denk dat ik snap waar 't fout gaat -;).
Nog 1 vraag...nu wordt bij de edit de velden eronder getoond. Ik wil die dan op een nieuwe/lege pagina tonen..en dan na "bijwerken" weer de tabel/regels zien.