Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

mehrere Ausgaben eines Arrays davon soll eine Ausgabe per Checkbox markiert und geändert werden. Bloß wie?

Frage Entwicklung PHP

Mitglied: gechger

gechger (Level 1) - Jetzt verbinden

10.07.2009, aktualisiert 05.10.2009, 4352 Aufrufe, 10 Kommentare

Mit Checkboxen habe ich schon gearbeitet, aber in diesem Fall komme ich mit meinem Wissen nicht weiter.

Hallo Forum,

schön das es Euch gibt. Ihr habt mir bisher immer weiter helfen können. Auch im aktuellen Fall fehlt mir mal wieder der letzte Schubs in die richtige Richtung.

Ich habe ein Formular, aus dem ein User Daten abrufen kann. Diese Daten stehen schön in einem Array und werden auch über eine Schleife ausgegeben. So kann es sein, daß dort 1 Datensatz oder auch ganz viele Datensätze ausgegeben werden.

Der Admin soll diese Daten überprüfen und wenn nötig ändern. Die Auswahl der Datensätze, die geändert werden sollen, will ich durch Checkboxen markieren. Beim Absenden der Checkbox soll nur der gewählte Datensatz in einer neuen Tabelle angezeigt und geändert werden. Hier mal der relevante Teil des Scripts:

01.
while ($row1 = mysql_fetch_assoc($result1)) { 
02.
         //echo "<pre>"
03.
         //print_r($row1); 
04.
         //echo "</pre>"
05.
         if (@$_POST["nachname"] == @$row1["name"]){ 
06.
                 if (!isset($_POST['daten'])) { 
07.
?> 
08.
 
09.
 
10.
<form action="aendern.php" method="post" name="Formular" onSubmit="return chkFormular()"
11.
<table border="1"
12.
         <tr> 
13.
                 <td width="120"><font size="-1">Datum </font></td> 
14.
                 <td width="180"><font size="-1">Name</font></td> 
15.
                 <td width="100"><font size="-1">Stunden</font></td> 
16.
                 <td><input type="radio" name="daten" value="id"></td></form> 
17.
         </tr> 
18.
         <tr> 
19.
                 <td width="120"  bgcolor="#FFFFFF" name="datum"><font size="-1"><b><? echo $row1["datum"]; ?></b></font></td> 
20.
                 <td width="180" bgcolor="#FFFFFF" name="name"><font size="-1"><b><? echo $row1["name"]; ?></b></font></td> 
21.
                 <td width="100"  bgcolor="#FFFFFF" name="zeit"><font size="-1"><b><? echo $row1["zeit"]; ?></b></font></td> 
22.
                 <td><input type="submit" value="ändern"></td> 
23.
         </tr> 
24.
         <tr> 
25.
                 <td width="250"><font size="-1">Projekt</font></td> 
26.
                 <td width="250"><font size="-1">Auftrag</font></td> 
27.
                 <td width="250"><font size="-1">Einsatz</font></td> 
28.
                 <td width="60"><font size="-1">Tätigkeit</font></td> 
29.
         </tr> 
30.
         <tr> 
31.
                 <td width="250" bgcolor="#FFFFFF" name="projekt"><font size="-1"><b><? echo $row1["projekt"]; ?></b></font></td> 
32.
                 <td width="250" bgcolor="#FFFFFF" name="auftrag"><font size="-1"><b><? echo $row1["auftrag"]; ?></b></font></td> 
33.
                 <td width="250" bgcolor="#FFFFFF" name="einsatz"><font size="-1"><b><? echo $row1["einsatz"]; ?></b></font></td> 
34.
                 <td width="60" bgcolor="#FFFFFF" name="tat"><font size="-1"><b><? echo $row1["taetigkeit"]; ?></b></font></td> 
35.
         </tr> 
36.
         <tr height="8"
37.
         <td height="8" bgcolor="#999999"></td> 
38.
         <td height="8" bgcolor="#999999"></td> 
39.
         <td height="8" bgcolor="#999999"></td> 
40.
         <td height="8" bgcolor="#999999"></td> 
41.
         </tr> 
42.
</table> 
43.
<? 
44.
45.
else
46.
.......
Ich habe ja nur eine Tabelle, die durch die Schleife mehrfach ausgegeben werden kann. Ich kann also nur einen Radiobutton definieren. Er trägt für jeden Datensatz den gleichen Namen ind das gleiche value.

Wie erreiche ich es also, daß nur der markierte Datensatz des Arrays weitergegeben wird in die neue Tabelle.

Jede Idee hilft.

Schöne Grüße
Christof
Mitglied: thaenhusen
10.07.2009 um 14:24 Uhr
Moin.

Bei den Inputs machst Du einfach folgendes:

<input type="checkbox" name="DSbeachten[]" value="<?php echo $row1["idfeld"]; ?>" />

Damit baust Du dir ein ID-Array mit den ID's der Datensätze, die bearbeitet werden sollen.

In dem nächsten Formular läufst Du das Array DSbeachten[] durch und kannst die Datensätze daduch zur Änderung anbieten.

in_array() wird Dir da wahrscheinlich weiterhelfen.

HTH.
MK
Bitte warten ..
Mitglied: gechger
10.07.2009 um 14:44 Uhr
Hallo MK,

im Prinzip also das Gleiche, als wenn ich eine Liste mit 10 Checkboxen habe und mit array[] im Namen die Daten anschließend weiterverarbeite. Das habe ich schon gemacht, dann werde ich das hier auch so lösen.

Vielen Dank für Deine prompte Antwort.

Schöne GRüße
Christof
Bitte warten ..
Mitglied: thaenhusen
10.07.2009 um 14:57 Uhr
Hallo Christof.

Im Prinzip ja. Wenn Du aber eindeutige ID's hast und mit denen arbeitest wird das
ganze meiner Meinung nach wartungsfreundlicher...

Schöne Grüße
MK
Bitte warten ..
Mitglied: gechger
10.07.2009 um 17:39 Uhr
Hallo MK,

leider krieg ich es nicht hin, weiss aber nicht wieso:

01.
$result1 = mysql_query($sql1) OR die(mysql_error()); 
02.
while ($row1 = mysql_fetch_assoc($result1)) { 
03.
         //echo "<pre>"
04.
         //print_r($row1); 
05.
         //echo "</pre>"
06.
         if (@$_POST["nachname"] == @$row1["name"]){ 
07.
                 if (!isset($_POST["daten[]"])) {         //prüfen, ob der Änderungsbutton gedrückt wurde 
08.
?> 
09.
 
10.
 
11.
<form action="aendern.php" method="post"
12.
<table border="1"
13.
         <tr> 
14.
                 <td width="120"><font size="-1">Datum </font></td> 
15.
                 <td width="180"><font size="-1">Name</font></td> 
16.
                 <td width="100"><font size="-1">Stunden</font></td> 
17.
                 <td><input type="radio" name="daten[]" value="<?php echo $row1["id"]; ?>/"><?php echo $row1["id"]; ?></td> 
18.
         </tr> 
19.
         <tr> 
20.
                 <td width="120"  bgcolor="#FFFFFF" name="datum"><font size="-1"><b><? echo $row1["datum"]; ?></b></font></td> 
21.
                 <td width="180" bgcolor="#FFFFFF" name="name"><font size="-1"><b><? echo $row1["name"]; ?></b></font></td> 
22.
                 <td width="100"  bgcolor="#FFFFFF" name="zeit"><font size="-1"><b><? echo $row1["zeit"]; ?></b></font></td> 
23.
 
24.
         </tr> 
25.
         <tr> 
26.
                 <td width="250"><font size="-1">Projekt</font></td> 
27.
                 <td width="250"><font size="-1">Auftrag</font></td> 
28.
                 <td width="250"><font size="-1">Einsatz</font></td> 
29.
                 <td width="60"><font size="-1">Tätigkeit</font></td> 
30.
         </tr> 
31.
         <tr> 
32.
                 <td width="250" bgcolor="#FFFFFF" name="projekt"><font size="-1"><b><? echo $row1["projekt"]; ?></b></font></td> 
33.
                 <td width="250" bgcolor="#FFFFFF" name="auftrag"><font size="-1"><b><? echo $row1["auftrag"]; ?></b></font></td> 
34.
                 <td width="250" bgcolor="#FFFFFF" name="einsatz"><font size="-1"><b><? echo $row1["einsatz"]; ?></b></font></td> 
35.
                 <td width="60" bgcolor="#FFFFFF" name="tat"><font size="-1"><b><? echo $row1["taetigkeit"]; ?></b></font></td> 
36.
         </tr> 
37.
         <tr height="8"
38.
         <td height="8" bgcolor="#999999"></td> 
39.
         <td height="8" bgcolor="#999999"></td> 
40.
         <td height="8" bgcolor="#999999"></td> 
41.
         <td height="8" bgcolor="#999999"></td> 
42.
         </tr> 
43.
 
44.
</table> 
45.
 
46.
<table> 
47.
<tr> 
48.
<td><input type="submit" value="ändern" ></td> 
49.
</tr> 
50.
</table> 
51.
 
52.
 
53.
 </form> 
54.
<?}} 
55.
 else
56.
 
57.
     echo "Selektion erfolgreich"
58.
 
59.
     echo "<pre>"
60.
     print_r($daten); 
61.
     echo "</pre>"
62.
 
63.
     echo "<pre>"
64.
     print_r($row1); 
65.
     echo "</pre>"
66.
 
67.
 
68.
 
69.
 
70.
 
71.
 
72.
73.
74.
?> 
75.
 
76.
 
77.
</body>
Ich prüfe zunächst mit
if (!isset($_POST["daten[]"])) ,
ob der Änderungsbutton betätigt wurde. Wenn nicht, soll er die gewünschten Daten zu Ansicht ausgeben, was auch passiert.

Wenn der Änderungsbutton gedrückt wird, will ich zunächst die Inhalte der Arrays ausgegeben haben, um zu sehen, was da drin steht.
Ich bekomme aber keine Anzeige.

Kann es sein, daß der Änderungsbutton nicht funktioniert, weil er Bestandteil der Schleife ist und zu jedem Datensatz erscheint?
Oder kann ich mit $_POST["daten[]") keine Prüfung vornehmen?

Schöne Grüße
Christof
Bitte warten ..
Mitglied: godlie
10.07.2009 um 19:03 Uhr
Hallo,

einem Radiobutton ein array zu geben macht recht wenig sinn!
Da bei mehreren Radiobuttons ja nur einer ausgewählt werden kann.

Jetzt mal eine Frage fürs Verständnis:

Willst du jetzt das bei der Anzeige der gesamtdaten es nur möglich ist einen Datensatz zum Bearbeiten auszuwählen oder das mehrere bearbeitet werden können?
Bitte warten ..
Mitglied: gechger
10.07.2009 um 20:40 Uhr
Hi Godlie,

schwere Entscheidung. Es ist sicherlich bessser in der Praxis, alle gewählten Datensätze in einem Rutsch zu ändern. Geht wahrscheinlich etwas schneller.

Schöne Grüße
Christof
Bitte warten ..
Mitglied: gechger
10.07.2009 um 20:45 Uhr
Hallo an Alle,

ich habe jetzt mal getestet, die Ausgabe an ein neues Formular zu senden.
So sieht das neue Formular aus:

01.
<? session_start(); 
02.
error_reporting(E_ALL); #zeig alle Fehler 
03.
ini_set('display_errors', '1'); #sorgt dafür, dass überhaupt Fehler angezeigt werden 
04.
 
05.
?> 
06.
 
07.
<!ENTITY % HTML.Version "-//W3C//DTD HTML 4.01 Frameset//EN" 
08.
  -- Typical usage: 
09.
 
10.
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" 
11.
            "http://www.w3.org/TR/html4/frameset.dtd"
12.
 
13.
<html> 
14.
<head> 
15.
<title>Daten ändern</title> 
16.
 
17.
        <meta http-equiv="expires" content="0"
18.
        <meta name="author" content="Christof Gersky"
19.
 
20.
</head> 
21.
 
22.
<body> 
23.
<?php 
24.
foreach($seite as $elem) { 
25.
$cldb = mysql_connect($_SESSION['host'], $_SESSION['dbuser'], $_SESSION['passwort']) or die(mysql_error()); 
26.
mysql_select_db($_SESSION['db']); 
27.
$sql = "SELECT * FROM ".$_SESSION['tabdat']." where id = $elem"
28.
echo mysql_error(); 
29.
$result = mysql_query($sql) OR die(mysql_error()); 
30.
while ($row = mysql_fetch_assoc($result)) { 
31.
?> 
32.
<table border="1"
33.
         <tr> 
34.
                 <td width="120"><font size="-1">Datum </font></td> 
35.
                 <td width="180"><font size="-1">Name</font></td> 
36.
                 <td width="100"><font size="-1">Stunden</font></td> 
37.
         </tr> 
38.
         <tr> 
39.
                 <td width="120"  bgcolor="#FFFFFF" name="datum" value="<? echo $row["datum"]; ?>" > <font size="-1"></font></td> 
40.
                 <td width="180" bgcolor="#FFFFFF" name="name" value="<? echo $row["name"]; ?>" > <font size="-1"></font></td> 
41.
                 <td width="100"  bgcolor="#FFFFFF" name="zeit" value="<? echo $row["zeit"]; ?>" > <font size="-1"></font></td> 
42.
 
43.
         </tr> 
44.
         <tr> 
45.
                 <td width="250"><font size="-1">Projekt</font></td> 
46.
                 <td width="250"><font size="-1">Auftrag</font></td> 
47.
                 <td width="250"><font size="-1">Einsatz</font></td> 
48.
                 <td width="60"><font size="-1">Tätigkeit</font></td> 
49.
         </tr> 
50.
         <tr> 
51.
                 <td width="250" bgcolor="#FFFFFF" name="projekt" value="<? echo $row["projekt"]; ?>" > <font size="-1"></font></td> 
52.
                 <td width="250" bgcolor="#FFFFFF" name="auftrag" value="<? echo $row["auftrag"]; ?>" > <font size="-1"></font></td> 
53.
                 <td width="250" bgcolor="#FFFFFF" name="einsatz" value="<? echo $row["einsatz"]; ?>" > <font size="-1"></font></td> 
54.
                 <td width="60" bgcolor="#FFFFFF" name="tat" value="<? echo $row["taetigkeit"]; ?>" > <font size="-1"></font></td> 
55.
         </tr> 
56.
         <tr height="8"
57.
         <td height="8" bgcolor="#999999"></td> 
58.
         <td height="8" bgcolor="#999999"></td> 
59.
         <td height="8" bgcolor="#999999"></td> 
60.
         <td height="8" bgcolor="#999999"></td> 
61.
         </tr> 
62.
 
63.
</table> 
64.
<? 
65.
}} 
66.
?> 
67.
</body> 
68.
</html> 
69.
<!ENTITY % HTML.Frameset "INCLUDE"
70.
<!ENTITY % HTML4.dtd PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Aber dann bekomme ich eine Fehlermeldung:

Parse error: syntax error, unexpected '<' in /pages/be/0e/d0006174/home/htdocs/webtool/aenderaktdat.php on line 24

Es ist die Zeile mit der foreach Schleife. Aber ich finde nichts, was diesen Fehler verursachen könnte.

Seht Ihr da was????
Bitte warten ..
Mitglied: gechger
13.07.2009 um 13:22 Uhr
Hallo Forum,

bin nun einen Schritt weiter. Ich verwende einfach ein neues Formular.
Das erste sieht so aus:

01.
<form action="aenderndo.php" method="post"
02.
<table border="1"
03.
         <tr> 
04.
                 <td width="120"><font size="-1">Datum </font></td> 
05.
                 <td width="180"><font size="-1">Name</font></td> 
06.
                 <td width="100"><font size="-1">Stunden</font></td> 
07.
                 <td><input type="checkbox" name="daten[]" value="<?echo $row1["id"]?>"></td> 
08.
         </tr> 
09.
         <tr> 
10.
                 <td width="120"  bgcolor="#FFFFFF" name="datum"><font size="-1"><b><? echo $row1["datum"]; ?></b></font></td> 
11.
                 <td width="180" bgcolor="#FFFFFF" name="name"><font size="-1"><b><? echo $row1["name"]; ?></b></font></td> 
12.
                 <td width="100"  bgcolor="#FFFFFF" name="zeit"><font size="-1"><b><? echo $row1["zeit"]; ?></b></font></td> 
13.
 
14.
         </tr> 
15.
         <tr> 
16.
                 <td width="250"><font size="-1">Projekt</font></td> 
17.
                 <td width="250"><font size="-1">Auftrag</font></td> 
18.
                 <td width="250"><font size="-1">Einsatz</font></td> 
19.
                 <td width="60"><font size="-1">Tätigkeit</font></td> 
20.
         </tr> 
21.
         <tr> 
22.
                 <td width="250" bgcolor="#FFFFFF" name="projekt"><font size="-1"><b><? echo $row1["projekt"]; ?></b></font></td> 
23.
                 <td width="250" bgcolor="#FFFFFF" name="auftrag"><font size="-1"><b><? echo $row1["auftrag"]; ?></b></font></td> 
24.
                 <td width="250" bgcolor="#FFFFFF" name="einsatz"><font size="-1"><b><? echo $row1["einsatz"]; ?></b></font></td> 
25.
                 <td width="60" bgcolor="#FFFFFF" name="tat"><font size="-1"><b><? echo $row1["taetigkeit"]; ?></b></font></td> 
26.
         </tr> 
27.
         <tr height="8"
28.
         <td height="8" bgcolor="#999999"></td> 
29.
         <td height="8" bgcolor="#999999"></td> 
30.
         <td height="8" bgcolor="#999999"></td> 
31.
         <td height="8" bgcolor="#999999"></td> 
32.
         </tr> 
33.
</table> 
34.
<?} 
35.
36.
?> 
37.
<td><input type="submit" value="ändern"></td></form>
Wichtig dabei war, daß der Änderungs-Button außerhalb der Schleife liegt. Liegt er innerhalb, wird nur der "selektierte" Datensatz übergeben. Jetzt bekomme ich alle.

Die anderdatdo.php, an die ich die Werte übergebe, sieht so aus:
01.
<?php 
02.
 
03.
$cldb = mysql_connect($_SESSION['host'], $_SESSION['dbuser'], $_SESSION['passwort']) or die(mysql_error()); 
04.
mysql_select_db($_SESSION['db']); 
05.
$daten=$_POST["daten"]; 
06.
echo "<pre>"
07.
         print_r($daten); 
08.
         echo "</pre>"
09.
foreach ($daten as $key => $datenarr) { 
10.
 
11.
        echo $datenarr
12.
 
13.
 
14.
$sql = "SELECT * FROM ".$_SESSION['tabdat']." where id='$datenarr' order by datum"
15.
echo mysql_error(); 
16.
$result = mysql_query($sql) OR die(mysql_error()); 
17.
while ($row = mysql_fetch_assoc($result)) { 
18.
 
19.
 
20.
 
21.
?> 
22.
 
23.
 
24.
<table border="1"
25.
         <tr> 
26.
                 <td width="120"><font size="-1">Datum </font></td> 
27.
                 <td width="180"><font size="-1">Name</font></td> 
28.
                 <td width="100"><font size="-1">Stunden</font></td> 
29.
 
30.
         </tr> 
31.
         <tr> 
32.
                 <td width="120"  bgcolor="#FFFFFF"><font size="-1"><b><? echo $row["datum"]; ?></b></font></td> 
33.
                 <td width="180" bgcolor="#FFFFFF"><font size="-1"><b><? echo $row["name"]; ?></b></font></td> 
34.
                 <td width="100"  bgcolor="#FFFFFF"><font size="-1"><b><? echo $row["zeit"]; ?></b></font></td> 
35.
 
36.
         </tr> 
37.
         <tr> 
38.
                 <td width="250"><font size="-1">Projekt</font></td> 
39.
                 <td width="250"><font size="-1">Auftrag</font></td> 
40.
                 <td width="250"><font size="-1">Einsatz</font></td> 
41.
                 <td width="60"><font size="-1">Tätigkeit</font></td> 
42.
         </tr> 
43.
         <tr> 
44.
                 <td width="250" bgcolor="#FFFFFF"><font size="-1"><b><? echo $row["projekt"]; ?></b></font></td> 
45.
                 <td width="250" bgcolor="#FFFFFF"><font size="-1"><b><? echo $row["auftrag"]; ?></b></font></td> 
46.
                 <td width="250" bgcolor="#FFFFFF"><font size="-1"><b><? echo $row["einsatz"]; ?></b></font></td> 
47.
                 <td width="60" bgcolor="#FFFFFF"><font size="-1"><b><? echo $row["taetigkeit"]; ?></b></font></td> 
48.
         </tr> 
49.
         <tr height="8"
50.
         <td height="8" bgcolor="#999999"></td> 
51.
         <td height="8" bgcolor="#999999"></td> 
52.
         <td height="8" bgcolor="#999999"></td> 
53.
         <td height="8" bgcolor="#999999"></td> 
54.
         </tr> 
55.
</table> 
56.
 
57.
<? 
58.
 
59.
60.
61.
?>
Darin stehen jetzt alle ausgewählten Elemente.

Vielen Dank für Eure Hilfe.

Schöne Grüße
Christof
Bitte warten ..
Mitglied: Guenni
13.07.2009 um 22:50 Uhr
Hi Christof,

jetzt kannst du Datensätze, die zum Ändern markiert sind, in einem zweiten Formular

ausgeben. Aber diese werden, wie im ersten Formular, doch erstmal nur angezeigt.

Du könntest doch in einem Formular die Abfrageergebnisse einer DB direkt in Text-

bzw. Inputfelder ausgeben.


Die Input-Felder werden als Array deklariert, Index ist die jeweilige

Datensatz-ID. Am Ende wird, ebenfalls als Array, eine Checkbox angehangen,

Dem Value der Checkbox wird ebenfalls die Datensatz-ID übergeben.

Am Ende des Formulars noch ein Submit-Button, und alle markierten Datensätze

werden nach Absenden geändert.


Erstmal das Formular:

01.
<form action="<?echo $_SERVER[PHP_SELF];?>" method="post"
02.
 
03.
<table border="1"
04.
 
05.
<?php 
06.
 
07.
$query="select . . . u.s.w."
08.
 
09.
$result=mysql_query($query); 
10.
 
11.
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){ 
12.
 
13.
?> 
14.
 
15.
<tr> 
16.
 
17.
<td><input type="text" name="vorname[<?echo $row[id];?>]" value="<?echo $row[Vorname];?>" /></td> 
18.
 
19.
<td><input type="text" name="nachname[<?echo $row[id];?>]" value="<?echo $row[Nachname];?>" /></td> 
20.
 
21.
... usw., je nach Anzahl Felder 
22.
 
23.
<td><input type="checkbox" name="edit[]" value="<?echo $row[id];?>" /></td> 
24.
 
25.
</tr> 
26.
 
27.
<? 
28.
29.
?> 
30.
<tr> 
31.
 
32.
<td colspan="Anzahl_Spalten"><input type="submit" value="Edit" name="cmd" /></td> 
33.
 
34.
</tr> 
35.
 
36.
</table> 
37.
 
38.
</form>
Die Verarbeitung des Formulars:

01.
<?php 
02.
//Prüfen, ob das Formular gesendet wurde. 
03.
 
04.
if(isset($_POST['cmd'])){ 
05.
 
06.
//Prüfen, ob wenigstens eine Checkbox markiert war, denn nur die werden gesendet. 
07.
  
08.
 if(isset($_POST['edit'])){ 
09.
   
10.
   //Wenn dem so ist, werden die gesendeten Daten in Variablen abgelegt. 
11.
   //Ich persönlich finde, dann ist die Sache leichter zu handeln. 
12.
         
13.
	$vornamen=$_POST['vorname']; 
14.
	$nachnamen=$_POST['nachname']; 
15.
	 
16.
   
17.
   //In der foreach-Schleife werden nun die einzelnen Value's(die Datensatz-ID's) aus dem 
18.
   //Array der Checkbox in die Variable id abgelegt. 
19.
   //Mit dieser Variablen kann ich nun die Array-Elemente der übertragenen Input-Felder 
20.
   //ansprechen und verarbeiten. 
21.
	 
22.
  foreach($_POST['edit'] as $id){ 
23.
	 $query="update tabelle"
24.
	 $query.=" set vorname='$vornamen[$id]',nachname='$nachnamen[$id]'"
25.
	 $query.=" where id=$id"
26.
	 $result=mysql_query($query) or die(mysql_error()); 
27.
28.
29.
30.
 
31.
?>
Gruß
Günni
Bitte warten ..
Mitglied: gechger
14.07.2009 um 20:49 Uhr
Hi Günni,

scheint, als wenn durch Dein Script alles etwas schlanker wird.
Ich versuche mal, daß umzusetzen. Wird aber ein paar Tage dauern, da ich mal wieder meinem "normalen" Job nachgehen muß und einige Tage im Ausseneinsatz bin. Leider kann ich php nur so "nebenbei" machen.

Nicht gerade ideal, man muß sich ja immer neu eindenken.

Jedenfalls viieeeelen Dank
und schöne Grüße

Christof
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel SVERWEIS mit mehreren Ausgaben
Frage von PeronasMicrosoft Office

Hallo zusammen, hätte nochmal eine Frage zu einer Excelaufgabe. Und zwar habe ich 2 Tabellen. 1. Tabelle beinhaltet die ...

Batch & Shell
Wieso ist die Catch Ausgabe ohne ausgabe der Variable?
gelöst Frage von pixel0815Batch & Shell10 Kommentare

Hallo zusammen, weshalb wird nicht die Variable $_.Hostname mit dem betreffenden nicht vorhandenen Record angezeigt? Ich erhalte immer Kein ...

Datenbanken
MYSQL ausgabe
Frage von pcguyDatenbanken31 Kommentare

Hallo zusammen Ich versuche gerade einen DB inhalt gefiltert auszugeben. DB: id - parent_id - title - url - ...

Batch & Shell
Ausgabe filtern
gelöst Frage von DoktorApfelBatch & Shell2 Kommentare

Hallo zusammen, Ich schreib gerade an einem Skript für Abfragen aus dem Programm Device42, mit Hilfe folgendes Befehles Erhalte ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 10 StundenInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 17 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 1 TagWindows 104 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless19 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement17 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...