Autor |
Nachricht |
dondom
Threadersteller
Dabei seit: 28.10.2013
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 28.10.2013 15:58
Titel Per JavaScript Submit Button für Form generieren lassen |
|
|
Hallöchen,
ich lese per PHP Script aus einer Datenbank ein paar Datensätze raus, und lasse diese in einer Tabelle anzeigen.
Hinter jede Zeile wird dann ein Edit Button gesetzt. Klickt man diesen Edit Button an,
werden die Zellen der Tabelle zu Inputs mit dem Value, des vorherigem Inhalts der Zelle.
Außerdem wird der Edit Button zu einem Speichern Button, welcher dann eine Form abschicken soll
zu einem anderem PHP Script. Die Form liegt immer um eine Zeile der Tabelle.
Leider passiert nichts, wenn man den Speichern Button anklickt.
Das ist einfach die Ausgabe der Daten.
So sieht es aus, wenn man Edit geklickt hat. Edit ruft ein JavaScript auf.
Der Speichern Button soll jetzt die Form (Die Inputs) absenden.
Hier ist mal Code:
Php-Code: Die ausgabe der Daten
Code: |
while($row=mysql_fetch_row($result))
{
echo "<form method='post' action='mitglied_bearbeiten.php' >\n";
echo "<tr>\n";
foreach($row as $i)
{
echo "<td id='$lauf'>$i</td>\n";
$lauf++;
}
echo "<td id='$lauf'><input type='button' name='$lauf' value='Edit' onClick='edit($lauf)' /></td>";
echo "</tr>\n";
echo "</form>\n";
$lauf++;
}
echo "</table>";
mysql_close($dbh);
|
JavaScript - Generiert die Inputs und den Speichern Button
Code: |
function edit(x)
{
var y=x;
x--;
var td5=document.getElementById(x);
var td5_v=td5.innerHTML;
x--;
var td4=document.getElementById(x);
var td4_v=td4.innerHTML;
x--;
var td3=document.getElementById(x);
var td3_v=td3.innerHTML;
x--;
var td2=document.getElementById(x);
var td2_v=td2.innerHTML;
x--;
var td1=document.getElementById(x);
var td1_v=td1.innerHTML;
x--;
var td0=document.getElementById(x);
var td0_v=td0.innerHTML;
td0.innerHTML="<input type='text' name='name' value="+td0_v+" />";
td1.innerHTML="<input type='text' name='vorname' value="+td1_v+" />";
td2.innerHTML="<input type='text' name='eintrittsdatum' value="+td2_v+" />";
td3.innerHTML="<input type='text' name='stimme' value="+td3_v+" />";
td4.innerHTML="<input type='text' name='position' value="+td4_v+" />";
td5.innerHTML="<input type='text' name='aktiv' value="+td5_v+" />";
var button=document.getElementById(y);
var td0_v=button.innerHTML;
button.innerHTML="<input type='submit' name='"+y+"' value='Speichern' />";
}
|
Weiß leider nicht, warum der Speichern Button nichts macht.
Hoffe mir kann jemand helfen.
|
|
|
|
|
qualidat
Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht:
|
Verfasst Mo 28.10.2013 19:37
Titel
|
|
|
Ich finde den Programmierstil ziemlich krank ...
Ein vernünftigerer Stil wäre es m.E., an den Buttons die Eigenschaft value mittels JS-Funktion zu ändern (statt neue zu erzeugen), in einem Array die Stati der Tabellenfelder zu führen und und mit dem Event onclick eine Funktion mit entsprechenden Parametern aufzurufen (z.B. Feldnummer und Edit oder Submit).
|
|
|
|
|
Anzeige
|
|
|
pantonine
Dabei seit: 03.03.2011
Ort: gehen Sie bitte weiter…
Alter: -
Geschlecht: -
|
Verfasst Mo 28.10.2013 20:33
Titel
|
|
|
Zitat: | x--;
var td5=document.getElementById(x);
var td5_v=td5.innerHTML;
x--;
var td4=document.getElementById(x);
var td4_v=td4.innerHTML;
x--;
var td3=document.getElementById(x);
var td3_v=td3.innerHTML;
x--;
var td2=document.getElementById(x);
var td2_v=td2.innerHTML;
x--;
var td1=document.getElementById(x);
var td1_v=td1.innerHTML;
x--;
var td0=document.getElementById(x);
var td0_v=td0.innerHTML; | Ehrlich jetz?
Ich dache in Javascript wäre die Schleife schon erfunden worden…
|
|
|
|
|
fyll
Dabei seit: 20.09.2003
Ort: Augsburg
Alter: 39
Geschlecht:
|
Verfasst Di 29.10.2013 09:01
Titel
|
|
|
Naja das ist relativ einfach erklärt:
Man darf kein <form/> in eine <tr/> setzen (oder zwischen table und tr). Dass dir das dein Editor nicht schon sagt, ist schon komisch..
Abhängig von deinem Doctype wird der Browser also das Form an dieser Stelle sofort wieder zumachen - die Inputs liegen dann halt nich im Form.
Du musst halt ein einzelnes Form erstellen und das als parent der table setzen.
Musst dann halt noch in den <input name=""> die ID der Row der Tabelle mitgeben und dann das mit PHP nach dem submit auseinander-parsen.
//edit: .. Oder du verzichtest auf <table/>s
Zuletzt bearbeitet von fyll am Di 29.10.2013 09:02, insgesamt 2-mal bearbeitet
|
|
|
|
|
|
|
|
Ähnliche Themen |
Form Submit trotz Javascript-Check in einer PHP datei
[JavaScript] Submit Button "verlinken"
[html/css] Submit-Button ohne Button
Submit Button to Textlink
IE stellt submit button falsch dar :(
Submit Button im Formular beschriften
|
|