Daten aus einem Formular dem anderen übergeben
Boubou
- html
Hallo alle zusammen ich hab da eine Frage. Ich hab ein formular in der eine Tabelle ist mit Daten. So jetzt hab ich an der Tabelle eine spalte mit Icons z.B. einen Stift zum bearbeiten der Daten ein x zum löschen der Daten. Ich sende dem 2. Formular die Variable mit der ID Nummer damit er weiss welchen Inhalt er bearbeiten soll in der Tabelle. mit this.$row.submit();. So die Daten müssen allerdings jetzt im 2. formular in den Eingabefeldern angezeigt werden. Wie bei PHP myadmin wenn ich auf bearbeiten klicke zeigt er mir den Inhalt dieser ID in den Eingabefeldern an. Tja er sendet die Daten aber er zeigt die mir in meinen Eingabefeldern nicht an. So sieht es im 2.Formular aus
<p>Anrede:<br><input value="<?php echo("{$row['Anrede']}");?>" name="Anrede" size="30" maxlength="30"></p> helft mir bitte.
Was zeigt er denn bei
<?php
echo count($row); // darf nicht 0 sein wenn er die Daten richtig übergibt.
echo $row['Anrede']; // Sollte die Anrede ausgeben
?>
an ?
Mahlzeit Boubou,
Ich sende dem 2. Formular die Variable mit der ID Nummer damit er weiss welchen Inhalt er bearbeiten soll in der Tabelle. mit this.$row.submit();.
Wo und wie nutzt Du diesen mehr als merkwürdig aussehenden "Befehl"? Ist Dir vielleicht der - zeitliche und örtliche - Unterschied zwischen serverseitigem PHP-Skript und clientseitigem Javascript nicht ganz klar? Mehr Code, bitte ...
MfG,
EKKi
Hallöchen,
Ich nehme an, dass du einfach gesagt Daten aus deiner SQL Datenbank bearbeiten oder löschen möchtest, ohne phpMyAdmin öffnen zu müssen.
Ein einfaches Adminscript also.
Bsp: im Browser
--------------------------admin.php---------(index)
Anrede | Name | Alter |
___________________________________________________________________
Herr | Miguel | unbekannt ;-) |<bearbeiten>|<löschen>
--------------------------bearb.php------------------
und wenn du auf bearbeiten klickst:
----------------------------
Anrede: |___Herr____|
Name: |__Miguel___|
Alter: |unbekannt ;-)|
<speichern><verwerfen>
---------------------------------------------------------------------
während es in der SQL Datenbank so aussieht:
-------------------MySQL----------
ID|Name |Alter
_____________________
1 |Miguel|unbekannt;-)
2 |Horst |42
----------------------------------------------------------------------
wie du siehst ist das schema relativ einfach.
jetzt musst du nur noch wissen was du willst.
Was willst du, wenn du auf <bearbeiten> klickst? (bei mir ist <bearbeiten> kein Button, sondern ein Link. Du kannst nehmen was du willst.)
admin.php:
<?php
mysql_connect("localhost","usr","pwd");
mysql_select_db("test");
$abfrage="SELECT * FROM test ORDER BY id";
$ergebnis=mysql_query($abfrage);
.............
das ist erst mal klar
weiter:
..............
while($row = mysql_fetch_array($ergebnis))
{
printf('
<table border="0">
<td align="left" width="1000">%s</td>
<td align="right"><a href="bearb.php?id=%d">Bearbeiten</a>
<td align="right"><a href="del.php?id=%d">Löschen</a>
</td></table><hr>',
$row["name"],
$row["id"],
$row["id"]);
}
................
das sollte auch klar sein. Wichtig ist: href="bearb.php?id=%d".
_________________
und in bearb.php schreibst du das formular wie du es haben willst.
ABER am Anfang:
<?php
mysql_connect("localhost","usr","pwd");
mysql_select_db("test");
$abfrage="SELECT * FROM test WHERE Id='".$_GET['id']."'";
$ergebnis=mysql_query($abfrage);
Kleiner auszug:
echo "<input type="hidden" name="Name" value="".$row['Name']."">";
___________________
Mit $_GET['id'] ruft der die jeweiligen Daten aus der Datenbank. in dem Fall "1".
Mit $row['Name'] füllt er das formular. in dem fall "Miguel"
und so weiter.
jetzt kannst du ändern was du willst und Speichern.
Mahlzeit Miguel,
$abfrage="SELECT * FROM test ORDER BY id";
$ergebnis=mysql_query($abfrage);
.............
das ist erst mal klar
Nö. "SELECT *" ist IMMER die schlechteste aller Möglichkeiten. Lass Dir nur die Felder ausgeben, die Du auch haben willst.
printf('
<table border="0">
<td align="left" width="1000">%s</td>
<td align="right"><a href="bearb.php?id=%d">Bearbeiten</a>
<td align="right"><a href="del.php?id=%d">Löschen</a>
</td></table><hr>',
$row["name"],
$row["id"],
$row["id"]);
Behandle Daten immer dem Kontext entsprechend. Dein Kontext in diesem Fall ist HTML. Demzufolge solltest Du die Rohdaten aus der Datenbank mit htmlespecialchars() behandeln.
$abfrage="SELECT * FROM test WHERE Id='".$_GET['id']."'";
s.o.
echo "<input type="hidden" name="Name" value="".$row['Name']."">";
s.o.
MfG,
EKKi