Formular mit Checkboxen füllen und weiterverarbeiten
Ich möchte anderen Usern ein Formular zur Verfügung stellen, daß Daten aus einer MYSQL Datenbank ausliest, über Checkboxen aber eine Auswahl ermöglichen und eine Änderungsmöglichkeit schaffen
Hallo Forum,
wieder mal hänge ich fest und mir fehlt der richtige Tip.
Ich habe ein Auswahlliste mit Checkboxen, um gezielt Daten der einzelnen Abteilungen (Sport) ausgeben zu lassen. Es handelt sich dabei um Übungszeiten.
Das funktioniert.
Die ausgegebenen Daten enthalten wiederum ein Checkbox. Die zu ändernden Daten sollen markiert werden, woraufhin sich ein weiteres Formular öffnen soll, in dem die Änderungen eingetragen werden können. Zum Schluß sollen die geänderten DAten in die Datenbank zurück, aber soweit bin ich noch nicht.
Mein Problem ist, daß immer wenn ich einen ausgegebenen Datensatz markiere, und das Änderungsformular aufrufen will, alles verschwindet bis auf mein ursprüngliches Auswahlformular, und ich weiss nicht wieso. Unter diesem Link könt Ihr Euch den Effekt gerne anscheuen php_Link .
Dies ist mein Script:
Wahrscheinlich wieder irgendwas simples, aber ich komme einach nicht drauf.
Jeder Tip hilft weiter.
Schöne Grüße
Christof
Hallo Forum,
wieder mal hänge ich fest und mir fehlt der richtige Tip.
Ich habe ein Auswahlliste mit Checkboxen, um gezielt Daten der einzelnen Abteilungen (Sport) ausgeben zu lassen. Es handelt sich dabei um Übungszeiten.
Das funktioniert.
Die ausgegebenen Daten enthalten wiederum ein Checkbox. Die zu ändernden Daten sollen markiert werden, woraufhin sich ein weiteres Formular öffnen soll, in dem die Änderungen eingetragen werden können. Zum Schluß sollen die geänderten DAten in die Datenbank zurück, aber soweit bin ich noch nicht.
Mein Problem ist, daß immer wenn ich einen ausgegebenen Datensatz markiere, und das Änderungsformular aufrufen will, alles verschwindet bis auf mein ursprüngliches Auswahlformular, und ich weiss nicht wieso. Unter diesem Link könt Ihr Euch den Effekt gerne anscheuen php_Link .
Dies ist mein Script:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>www.mtv-fichte.de</title>
<meta http-equiv="expires" content="0">
<meta name="author" content="Christof Gersky">
<meta name="Keywords" content="Winsen Aller, Sport, Badminton, Gesundheit, Handball, Rock, Roll, Jazz Dance, Schach, Tae Kwon Do, Tischtennis, Turnen, Gerätturnen ">
<style type="text/css"></style>
</head>
<body>
<body bgcolor="#ffffff" text="#111111">
<font face="Verdana, Arial, Tahoma, Sans Serif" >
<font size="2">
<font color="#291455">
<!-- Auswahlformular zur Auswahl der ABteilung-->
<form action="zeitaktual.php" method="post" name="Formular" onSubmit="return chkFormular()">
Bitte Abteilung auswählen <br><br>
<input type="radio" name="abteilung" value="Badminton" > Badminton<br>
<input type="radio" name="abteilung" value="Gerätturnen"> Gerätturnen<br>
<input type="radio" name="abteilung" value="Gesundheitssport" > Gesundheitssport<br>
<input type="radio" name="abteilung" value="Handball" > Handball<br>
<input type="radio" name="abteilung" value="Jazzdance" > Jazzdance<br>
<input type="radio" name="abteilung" value="Rock n Roll" > Rock 'n Roll<br>
<input type="radio" name="abteilung" value="Schach" > Schach<br>
<input type="radio" name="abteilung" value="Tae Kwon Do" > Tae Kwon Do<br>
<input type="radio" name="abteilung" value="Tischtennis" > Tischtennis<br>
<input type="radio" name="abteilung" value="Turnen" > Turnen<br>
<input type="radio" name="abteilung" value="Walking" > Walking<br>
<input type="submit" class="button" name="DataAction" value="Auswahl bestätigen"><br>
</form>
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
//Überprüfung, ob ein Radiobutton ausgewählt worden ist
if (isset($_REQUEST['abteilung'])) {
foreach ($_REQUEST['abteilung'] as $value) {
$auswahl=($value);
//Verbindungsaufbau zur Datenbank
$link = mysql_connect("XXXXXXX", "XXXXXX", "XXXXXX");
mysql_select_db("XXXXXX",$link) or die ("die Verbindungsaufnahme ist gescheitert!");
$sql=("SELECT * FROM mtv_zeiten where bereich = '$auswahl' ");
$abfrage = mysql_db_query('XXXXXXX',$sql);
//Aufteilen des erhaltenen Arrays
while ($daten=mysql_fetch_array($abfrage)){
$id=$daten-1;
$tag=$daten[1];
$zeitvon=$daten[2];
$zeitbis=$daten[3];
$art=$daten[4];
$ort=$daten[5];
$abteilung=$daten[6];
$leitung=$daten[7];
?>
<!--Ein neues Formular wird aufgebaut, in dem die selektierten Werte landen. Ebenso wird hier eine
Auswahlmöglichkeit geschaffen, die Daten zu markieren, die geändert werden sollen-->
<table border="1" >
<tr>
<td width="50%" bgcolor="#CCCCFF"><?echo $tag; ?></td>
<form action="zeitaktual.php" method="post">
<td "10%" bgcolor="#FF0000" ><input type="radio" name="auswahl<?= $id; ?>" value="0">Datensatz hier markieren zum Ändern<br> </td>
</tr>
</table>
<table border="1" bgcolor="#CCCCFF" >
<tr>
<td ><?echo $id."-".$zeitvon."-".$zeitbis."| |".$art."| |".$ort."| |".$abteilung."| |".$leitung ?></td>
</tr>
</table>
</form>
<?
//Prüfung, ob eine Auswahl getroffen worden ist
if(isset($_POST["auswahl$id"])){
?>
<!--Wenn eine Auswahl getroffen wurde, soll ein weiteres Formular geöffnet werden, in dem die Änderungen
vorgenommen werden können. HIER LIEGT MEIN PROBLEM!-->
<table >
<tr align="left" valign="bottom" bgcolor="#FF0000">
<td><input type="text" name="a_id" value="<?= $id; ?>" size="2"></td>
<td><input type="text" name="a_tag" value="<?= $tag; ?>" size="50"></td>
</tr>
</table>
<table>
<tr align="left" valign="bottom" bgcolor="#FF0000">
<td><input type="text" name="a_zeitvon" value="<?= $zeitvon; ?>" size="6"></td>
<td><input type="text" name="a_zeitbis" value="<?= $zeitbis; ?>" size="6"></td>
<td><input type="text" name="a_art" value="<?= $art; ?>" size="50" ></td>
<td><input type="text" name="a_ort" value="<?= $ort; ?>" size="25"></td>
<td><input type="text" name="a_abteilung" value="<?= $abteilung; ?>" size="25"></td>
<td ><input type="text" name="a_leitung" value="<?= $leitung; ?>" size="50"></td>
</tr>
</table>
<?
}
}
?>
<table>
<form action="zeitaktual.php" method="post">
<tr>
<td>
<input type="submit" value="Zum Ändern bitte klicken"><br>
</td>
</tr>
</table>
<br>
<?
}
//Kontrolle, wie die geänderten Daten aussehen
echo ($_POST["a_zeitvon"])."|".($_POST["a_zeitbis"])."|".($_POST["a_art"])."|".($_POST["a_ort"])."|".($_POST["a_abteilung"])."|".($_POST["a_leitung"]);
//Hier soll dann noch der SQL-Update Befehl kommen
}
?>
</font>
</body>
</html>
Wahrscheinlich wieder irgendwas simples, aber ich komme einach nicht drauf.
Jeder Tip hilft weiter.
Schöne Grüße
Christof
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 115536
Url: https://administrator.de/contentid/115536
Ausgedruckt am: 25.11.2024 um 04:11 Uhr
11 Kommentare
Neuester Kommentar
vlt. hilft dir das: http://aktuell.de.selfhtml.org/artikel/php/checkboxen/
Guten Abend,
benenne deine Radio-Button-Namen um und mache für jeden eine Abfrage a la
if (isset($_REQUEST['Badminton']))
<input type="radio" name="Badminton" value="Badminton" checked = checked > Badminton<br>
else
<input type="radio" name="Badminton" value="Badminton" > Badminton<br>
damit sollte der Browser sich merken, welchen Button du anfangs ausgewählt hast
Gruß Locke
benenne deine Radio-Button-Namen um und mache für jeden eine Abfrage a la
if (isset($_REQUEST['Badminton']))
<input type="radio" name="Badminton" value="Badminton" checked = checked > Badminton<br>
else
<input type="radio" name="Badminton" value="Badminton" > Badminton<br>
damit sollte der Browser sich merken, welchen Button du anfangs ausgewählt hast
Gruß Locke
Ich hab deinen Code mal etwas aufgeräumt:
a) Keine Garantie, dass es funktioniert - ich habe es nicht getestet
b) Praxistauglich ist es immer noch nicht, weil es noch SIcherheitslücken gibt
c) Ob das dein Problem löst kann ich nicht sagen
Grüße
Max
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>www.mtv-fichte.de</title>
<meta http-equiv="expires" content="0">
<meta name="author" content="Christof Gersky">
<meta name="Keywords" content="Winsen Aller, Sport, Badminton, Gesundheit, Handball, Rock, Roll, Jazz Dance, Schach, Tae Kwon Do, Tischtennis, Turnen, Gerätturnen ">
<style type="text/css"></style>
</head>
<body bgcolor="#ffffff" text="#111111">
<font face="Verdana, Arial, Tahoma, Sans Serif" >
<font size="2">
<font color="#291455">
<?php
if (!isset($_POST['abteilung'])) {
?>
<!-- Auswahlformular zur Auswahl der ABteilung-->
<form action="zeitaktual.php" method="post" name="Formular" onSubmit="return chkFormular()">
Bitte Abteilung auswählen <br><br>
<input type="radio" name="abteilung" value="Badminton" > Badminton<br>
<input type="radio" name="abteilung" value="Gerätturnen"> Gerätturnen<br>
<input type="radio" name="abteilung" value="Gesundheitssport" > Gesundheitssport<br>
<input type="radio" name="abteilung" value="Handball" > Handball<br>
<input type="radio" name="abteilung" value="Jazzdance" > Jazzdance<br>
<input type="radio" name="abteilung" value="Rock n Roll" > Rock 'n Roll<br>
<input type="radio" name="abteilung" value="Schach" > Schach<br>
<input type="radio" name="abteilung" value="Tae Kwon Do" > Tae Kwon Do<br>
<input type="radio" name="abteilung" value="Tischtennis" > Tischtennis<br>
<input type="radio" name="abteilung" value="Turnen" > Turnen<br>
<input type="radio" name="abteilung" value="Walking" > Walking<br>
<input type="submit" class="button" name="DataAction" value="Auswahl bestätigen"><br>
<?php
//Überprüfung, ob ein Radiobutton ausgewählt worden ist
} else {
//Verbindungsaufbau zur Datenbank
$link = mysql_connect("XXXXXXX", "XXXXXX", "XXXXXX");
mysql_select_db("XXXXXX",$link) or die ("die Verbindungsaufnahme ist gescheitert!");
$sql=sprintf("SELECT * FROM mtv_zeiten where bereich = '%s' ",$_POST['auswahl']);
$abfrage = mysql_db_query('XXXXXXX',$sql);
//Aufteilen des erhaltenen Arrays
while ($daten = mysql_fetch_assoc($abfrage)){
if(!isset($_POST['auswahl'])) {
?>
<!--Ein neues Formular wird aufgebaut, in dem die selektierten Werte landen. Ebenso wird hier eine
Auswahlmöglichkeit geschaffen, die Daten zu markieren, die geändert werden sollen-->
<table border="1" >
<tr>
<td width="50%" bgcolor="#CCCCFF">
<? echo $daten['tag']; ?>
</td>
<td "10%" bgcolor="#FF0000" >
<input type="radio" name="auswahl" value="<?= $daten['id'] ?>">
Datensatz hier markieren zum Ändern<br>
</td>
</tr>
</table>
<table border="1" bgcolor="#CCCCFF" >
<tr>
<td>
<?php echo $daten['id']."-".$daten['zeitvon']."-".$daten['zeitbis']."| |".$daten['art']."| |".$daten['ort']."| |".$daten['abteilung']."| |".$daten['leitung'] ?>
</td>
</tr>
</table>
<?php } elseif($_POST['auswahl'] == $daten['id']) { ?>
<!--Wenn eine Auswahl getroffen wurde, soll ein weiteres Formular geöffnet werden, in dem die Änderungen
vorgenommen werden können. HIER LIEGT MEIN PROBLEM!-->
<table >
<tr align="left" valign="bottom" bgcolor="#FF0000">
<td><input type="text" name="a_id" value="<?php echo $daten['id'] ?>" size="2"></td>
<td><input type="text" name="a_tag" value="<? echo $daten['tag']; ?>" size="50"></td>
</tr>
</table>
<table>
<tr align="left" valign="bottom" bgcolor="#FF0000">
<td><input type="text" name="a_zeitvon" value="<?= $daten['zeitvon'] ?>" size="6"></td>
<td><input type="text" name="a_zeitbis" value="<?= $daten['zeitbis']?>" size="6"></td>
<td><input type="text" name="a_art" value="<?= $daten['art'] ?>" size="50" ></td>
<td><input type="text" name="a_ort" value="<?= $daten['ort'] ?>" size="25"></td>
<td><input type="text" name="a_abteilung" value="<?= $daten['abteilung'] ?>" size="25"></td>
<td><input type="text" name="a_leitung" value="<?= $daten['leitung'] ?>" size="50"></td>
</tr>
</table>
<input type="hidden" name="action" value="update_row">
<input type="hidden" name="auswahl" value="<?php echo $daten['id'] ?>">
<?php
if(@$_POST['action'] == 'update_row') {
//Kontrolle, wie die geänderten Daten aussehen
echo ($_POST["a_zeitvon"])."|".($_POST["a_zeitbis"])."|".($_POST["a_art"])."|".($_POST["a_ort"])."|".($_POST["a_abteilung"])."|".($_POST["a_leitung"]);
}
}
}
?>
<input type="hidden" name="abteilung" value="<?php echo $_POST['abteilung'] ?>">
<?php } ?>
<table>
<tr>
<td>
<input type="submit" value="Zum Ändern bitte klicken"><br>
</td>
</tr>
</table>
</form>
</font>
</font>
</font>
</body>
</html>
a) Keine Garantie, dass es funktioniert - ich habe es nicht getestet
b) Praxistauglich ist es immer noch nicht, weil es noch SIcherheitslücken gibt
c) Ob das dein Problem löst kann ich nicht sagen
Grüße
Max
Nein, das sollte kein Problem sein.
POST-Daten werden komplett übergeben, bevor PHP überhaupt mit der Abarbeitung des Scripts beginnt.
Dein Problem ist wohl, dass der <form>-Header im zweiten Teil fehlt
Sprich aus:
muss
werden.
Grüße
Max
POST-Daten werden komplett übergeben, bevor PHP überhaupt mit der Abarbeitung des Scripts beginnt.
Dein Problem ist wohl, dass der <form>-Header im zweiten Teil fehlt
Sprich aus:
<?php
if (!isset($_POST['abteilung'])) {
?>
<!-- Auswahlformular zur Auswahl der ABteilung-->
<form action="zeitaktual.php" method="post" name="Formular" onSubmit="return chkFormular()">
muss
<form action="zeitaktual.php" method="post" name="Formular" onSubmit="return chkFormular()">
<?php
if (!isset($_POST['abteilung'])) {
?>
<!-- Auswahlformular zur Auswahl der ABteilung-->
werden.
Grüße
Max