| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

23-07-2006, 12:35
|
|
MasterB
Newbie
|
|
Registriert seit: Sep 2004
Beiträge: 6
|
|
HTML Tabelle auslesen und übergeben
PHP-Code:
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "<tr align='center'>\n";
echo "<td>".$row["stadt"]."</td>\n";
echo "<td>".$row["ErsteKoordinateX"]."</td>\n";
echo "<td>".$row["ZweiteKoordinateY"]."</td>\n";
echo "<td height='30'><input type='submit' name='Submit' value='Aendern'></td>";
echo "<td height='30'><input type='submit' name='Submit' value='Loeschen'></td>";
echo "</tr>\n";
}
Ich habe diese Codestruktur zur Anzeige von DB-Daten, ich habe hinter jeder Zeile 2 Buttons einmal Ändern und einmal Löschen. Da es ja mehrere Datensätze(Zeilen) geben kann, frage ich mich, wie weiß der Button welche Zeile er übergeben muss und kann man das überhaupt mit einem Button machen?
|

23-07-2006, 12:49
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Re: HTML Tabelle auslesen und übergeben
Zitat:
Original geschrieben von MasterB
Da es ja mehrere Datensätze(Zeilen) geben kann, frage ich mich, wie weiß der Button welche Zeile er übergeben muss und kann man das überhaupt mit einem Button machen?
|
Entweder machst du für jede Zeile ein Formular, und übergibst due Datensatz-ID o.ä. per (verstecktem) Formularfeld, oder
du benennst die Buttons so, dass du anhand dessen serverseitig weißt, welcher Datensatz zu bearbeiten ist - bspw. mit Button-Namen wie "aendern[15]" und "loeschen[15]" (und dann print_r($_POST) um zu schauen, wie das übergeben wird).
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

23-07-2006, 12:50
|
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
[verzeihung, kein sinnvoller beitrag gewesen.]
Geändert von penizillin (23-07-2006 um 12:55 Uhr)
|

23-07-2006, 13:10
|
|
MasterB
Newbie
|
|
Registriert seit: Sep 2004
Beiträge: 6
|
|
Kannst Du mir da ein kl. Beispiel geben. Ich hab schon lange kein PHP mehr geschrieben. Den Grundgedanken verstehe ich aber.
Wenn ich Formularfelder benutze, kann ich die gegen Eingabe schützen?
Oder meinste Du die Anzeige in der Tabellenzelle + verstecktem Formularfeld?
|

23-07-2006, 13:15
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
das ist ja in erster linie erstmal html.
hiddenfields sind nichtmal sichtbar, also auch nicht schreibbar. (dass jemand die daten anders übermittelt, kannst du ja ganz einfach überprüfen. Eine ID, die es nicht gibt, kann man auch nicht bearbeiten oder löschen. Und wenn es sie gibt, ist ja alles in order.)
|

23-07-2006, 13:55
|
|
MasterB
Newbie
|
|
Registriert seit: Sep 2004
Beiträge: 6
|
|
PHP-Code:
echo "<tr align='center'>\n";
echo "<input type='text' name='stadt[$i]' value=".$row["stadt"].">";
echo "<td>".$row["stadt"]."</td>\n";
echo "<td>".$row["ErsteKoordinateX"]."</td>\n";
echo "<td>".$row["ZweiteKoordinateY"]."</td>\n";
echo "<td height='30'><input type='submit' name='aendern[$i]' value='Aendern'></td>";
echo "<td height='30'><input type='submit' name='loeschen[$i]' value='Loeschen'></td>";
echo "</tr>\n";
$i++;
Ausgabe ist:
Array ( [stadt] => Array ( [0] => MasterTown01 [1] => Master [2] => Master ) [aendern] => Array ( [0] => Aendern ) ) 1
Zitat:
Entweder machst du für jede Zeile ein Formular, und übergibst due Datensatz-ID o.ä. per (verstecktem) Formularfeld, oder
du benennst die Buttons so, dass du anhand dessen serverseitig weißt, welcher Datensatz zu bearbeiten ist - bspw. mit Button-Namen wie "aendern[15]" und "loeschen[15]" (und dann print_r($_POST) um zu schauen, wie das übergeben wird).
|
Warum erkennt er bei dem input element und dem value keine Lehrzeichen?
PS wie bekomme ich "Original geschrieben von wahsaga" bei den Zitaten hin
|

23-07-2006, 13:59
|
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
Zitat:
|
Array ( [stadt] => Array ( [0] => MasterTown01 [1] => Master [2] => Master ) [aendern] => Array ( [0] => Aendern ) )
|
bedeutet: du hast in der 1. zeile auf "ändern" geklickt. jetzt musst du es nur abarbeiten.
Zitat:
|
Warum erkennt er bei dem input element und dem value keine Lehrzeichen?
|
wer? welche zeichen?
|

23-07-2006, 14:15
|
|
MasterB
Newbie
|
|
Registriert seit: Sep 2004
Beiträge: 6
|
|
Abarbeiten ist das Stichwort, was ich daraus lese
$_POST[stadt][0] => MasterTown01
$_POST[stadt][1] => Master
$_POST[stadt][2] => Master
$_POST[aendern][0] => Aendern
ich hoffe es ist richtig.
PHP-Code:
echo "<input type='text' name='stadt[$i]' value=".$row["stadt"].">";
ich übergebe value den Stadtnamen
$_POST[stadt][0] => MasterTown01 ist richtig da habe ich die Lehrzeichen in der DB testweise entfernt
$_POST[stadt][1] => Master ist falsch in der DB steht Master Town 02
$_POST[stadt][2] => Master ist falsch in der DB steht Master Town 03
Warum werden die Lehrzeichen nicht mitübergeben.
|

23-07-2006, 14:21
|
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
ich weiß immer noch nicht, von welchen pädagogisch geprägten sonderzeichen du sprichst.
aber vielleicht solltest du dich an die konvention halten, _alle_ attribute der html-tags in anführungsstriche zu setzen-
|

23-07-2006, 14:30
|
|
MasterB
Newbie
|
|
Registriert seit: Sep 2004
Beiträge: 6
|
|
Das war es: Anführungszeichen
ich habe es jetzt so geschrieben, das sollte doch auch anders gehen
PHP-Code:
echo "<input type='text' name='stadt[$i]' value="."'".$row["stadt"]."'".">";
|

23-07-2006, 14:31
|
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
oh ja.
denn ist das selbe wie
|

23-07-2006, 14:32
|
|
MasterB
Newbie
|
|
Registriert seit: Sep 2004
Beiträge: 6
|
|
im selben moment erkannt
Danke für die Hilfe
Geändert von MasterB (23-07-2006 um 14:40 Uhr)
|

24-07-2006, 09:20
|
|
x4th
Junior Member
|
|
Registriert seit: Dec 2003
Beiträge: 71
|
|
Zitat:
Original geschrieben von TobiaZ
(...)
hiddenfields sind nichtmal sichtbar, also auch nicht schreibbar.
(...)
|
Das stimmt so nicht! Für den Firefox gibt es mehrere Extensions, die gerade das möglich machen (und vieles mehr, wie z.B. Aufhebung der maxlength bei Inputfeldern, Aktivierung von Deaktivierten Feldern etc.)!
|

24-07-2006, 18:10
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Ja und? Das ist dann die angesprochene Manupulation. So what's your Problem?
|

25-07-2006, 00:06
|
|
jmc
PHP Junior
|
|
Registriert seit: Mar 2006
Beiträge: 868
|
|
Zitat:
Original geschrieben von x4th
Das stimmt so nicht! Für den Firefox gibt es mehrere Extensions, die gerade das möglich machen (und vieles mehr, wie z.B. Aufhebung der maxlength bei Inputfeldern, Aktivierung von Deaktivierten Feldern etc.)!
|
Das mit maxlength ist mir klar, da dies am Browser liegt, aber wie übergibst du per Post eigene Daten?!
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|