Datensatz per Dropdown auswählen - übergabe auf anderer Seite
savoy
- php
Hallo,
ich habe so meine Schwierigkeiten mit php und benötige etwas Hilfe. Zum Basisaufbau meiner Seite:
In einem gesicherten Bereich ist eine Tabelle, in jeder Zeile (11 Stück) ist ein Dropdownfeld, das per dynamischer Datenbank "gefüttert" wird. Die Zeilen sind mit einer eindeutigen ID versehen. Bis hierhin funktioniert alles (siehe Quelltext)
Das Problem taucht jetzt auf, da ich die Daten die per Dropdown ausgesucht wurden auf einer anderen Seite (Unterverzeichnis - ebenfalls Tabelle mit 11 Zeilen - gleiche ID wie auf Adminseite) so eintragen möchte - Auswahl von Zeile 1 = Eintrag in Zeile 1. Das ganze sollte in einem Zug vor sich gehen - gesamter Tabellenbereich wird übertragen und auf der anderen Seite eingetragen, könnte aber auch einzeln per Zeile erfolgen - solltes es nicht anders funktionieren.
Hintergrund: Es wird ein Stundenplan angelegt, der von "unerfahrenen" Trainern durch die Auswahl geändert werden kann. Die Datensätze werden seperat eingegeben (funktioniert schon)
<td>10-11 Uhr</td>
<td id="mo10">
<select name="mo10" id="mo10">
<?php
do {
?>
<option value="<?php echo $row_wochenplan['id']?>"><?php echo $row_wochenplan['kursnummer']?> (<?php echo $row_wochenplan['kurs']; ?>)</option>
<?php
} while ($row_wochenplan = mysql_fetch_assoc($wochenplan));
$rows = mysql_num_rows($wochenplan);
if($rows > 0) {
mysql_data_seek($wochenplan, 0);
$row_wochenplan = mysql_fetch_assoc($wochenplan);
}
?>
</select></td>
============================================================================
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
mysql_select_db($database_wochenplan, $wochenplan);
$query_wochenplan = "SELECT id, kursnummer, kurs FROM wochenplan";
$wochenplan = mysql_query($query_wochenplan, $wochenplan) or die(mysql_error());
$row_wochenplan = mysql_fetch_assoc($wochenplan);
$totalRows_wochenplan = mysql_num_rows($wochenplan);
?>
========================================================================
Hello,
gib den Daten eine vernünftige Struktur. Bezeichner, Zeile, Spalte, usw.
Fasse die Daten in einem Datenarray zusammen, damit Du sie von Controls unterscheiden kannst.
Speicher die eigentlichen Daten in der Session und wähle sie daraus beim nächsten Request (Auswahl) des Clients über die indexe aus (Bezeichner, Zeile, Spalte).
Und vor allem: Wenn Du so eine Operation öfter (Zeile * Spalte = Anzahl der Operationen) durchführen musst in einem Script, dann baue Dir vernünftige Funktionen dafür auf:
Funktion, die die Daten für die Optionen eines Selects beschafft
Funktion, die das HTML für das Select mit den Optionen aufbaut
Funktion die $_POST nach dem gewählten Array aus Selects und dessen Subarrays (Optionen, Alternativen) absucht und mit den Forwarded Data in $_SESSION vergleicht bzw. daraus vervollständigt.
Auch berechtigte Besucher machen gerne mal Blödsinn mit Formularen und wenn Du nur Veränderungen an Daten zulässt, die Du auch in der Session findest, dann kann Dir schon sehr viel weniger Unsinn durchrutschen.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Mahlzeit savoy,
Das Problem taucht jetzt auf,
Die Frage wäre, was genau nun eigentlich Dein Problem ist? Du hast - mehr oder weniger verständlich - beschrieben, was Du gerne hättest ... aber nicht, wo Dein Problem liegt, was Du bisher versucht hast, welche Fehlermeldungen erschienen, wo das Ergebnis von Deinen Erwartungen abwich usw.
<td id="mo10">
<select name="mo10" id="mo10">
Das ist schon mal invalider HTML-Code: IDs haben dokumentweit eindeutig zu sein. Validiere Deinen Code und beschreibe Dein Problem genauer.
Darüber hinaus wäre es sinnvoll, das EVA-Prinzip zu beachten und Deinen Code sorgfältiger zu strukturieren sowie ggf. PHP und HTML zu trennen.
MfG,
EKKi