Loop vast met beheerpagina's

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Herbert Foppen

Herbert Foppen

03/05/2012 17:13:44
Quote Anchor link
Mensen,

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
 
PHP hulp

PHP hulp

05/11/2024 14:47:45
 
Joakim Broden

Joakim Broden

03/05/2012 17:37:39
Quote Anchor link
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.
 
Frank WD

Frank WD

03/05/2012 17:49:29
Quote Anchor link
Even een klein opzetje hoe je dit zou kunnen doen.
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<a href="bewerk.php?id=<?php echo htmlspecialchars($row['id']) ;?>">Edit,/a>

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input value="<?php echo htmlspecialchars($row['naam']) ;?>">


Dit moet je een redelijk zet in de goede richting geven.
 
Herbert Foppen

Herbert Foppen

03/05/2012 20:38:00
Quote Anchor link
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!?
 
Nick Dijkstra

Nick Dijkstra

03/05/2012 20:40:15
Quote Anchor link
tussen de [co.de][/co.de] tags (zonder de punten)
Gewijzigd op 03/05/2012 20:40:52 door Nick Dijkstra
 
Herbert Foppen

Herbert Foppen

03/05/2012 20:51:42
Quote Anchor link
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
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>
Gewijzigd op 03/05/2012 21:23:02 door Herbert Foppen
 
Nick Dijkstra

Nick Dijkstra

03/05/2012 21:18:08
Quote Anchor link
Het is code met een [ en een ] ipv < >
 
Herbert Foppen

Herbert Foppen

03/05/2012 21:23:22
Quote Anchor link
Nick Dijkstra op 03/05/2012 21:18:08:
Het is code met een [ en een ] ipv < >

sorry...verkeerd gelezen. Aangepast
 
Nick Dijkstra

Nick Dijkstra

03/05/2012 21:43:58
Quote Anchor link
Misschien blijven ze leeg omdat je shorttags gebruikt? bijv:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$description?>
 
Chris PHP

Chris PHP

04/05/2012 07:45:50
Quote Anchor link
Waarom voeg je $rij['naam'] eerst toe aan de variabel $titel?

i.p.v. gewoon:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<html>
<input type="text" name="titel" value="<?php echo $rij['naam'] ?>">
</html>


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
 
Obelix Idefix

Obelix Idefix

04/05/2012 08:24:05
Quote Anchor link
Op het script hierboven valt nog wel wat meer aan te merken.
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.
 
Herbert Foppen

Herbert Foppen

04/05/2012 08:36:29
Quote Anchor link
Beste mensen,

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.
 



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.