HiddenField ohne Übergabe

lago

Mitglied
Hallo hallo,

ich hab ein (hoffenlich) kleines Problem, folgende Situation:
ich habe ein Template und ein Skript, das Skript begfüllt innerhalb eines zweidimensionalen Loops ein Formular das Zeilenweise gleichaussieht (Aufbau ebenfalls durch Loop)
PHP:
<table>	
			<tmpl_loop name="system_loop">
			<tr>
				<td width="100px" valign="top">
					<form method="post">
					<input type="hidden" name="HiddenField" value"{tmpl_var name='id'}">
					{tmpl_var name='id'}
				</td>
				<td valign="top">
					<select name="auswahl_br" class="Listing" size="1">
						<option selected>{tmpl_var name='baureihe'}</option>
						<tmpl_loop name="br_rest">
						<option>{tmpl_var name='br'}</option>
						</tmpl_loop>
					</select>
				</td>
				<td valign="top"> 
					<select name="auswahl_ma" class="Listing" size="1">
						<option selected>{tmpl_var name='markt'}</option>
						<tmpl_loop name="ma_rest">
						<option>{tmpl_var name='ma'}</option>
						</tmpl_loop>
					</select>
				</td>
				<td valign="top">
					<select name="auswahl_va" class="Listing" size="1">
						<option>{tmpl_var name='var'}</option>
						<option selected>{tmpl_var name='variante'}</option>
						<tmpl_loop name="va_rest">
						<option>{tmpl_var name='va'}</option>
						</tmpl_loop>
					</select>
				</td>
				<td valign="top" align="left">
					<input name="send" type="submit" class="Button" value="OK" onclick="this.form.action='System_update.php'">
					<input name="send" type="submit" class="Button2" value="{tmpl_var name='loeschen'}" onclick="this.form.action='System_new.php'"></form>
				</td>
			</tr>
			</tmpl_loop>
			<tr>
				<td><font color="#D2D0CF">-</font></td>
			</tr>
			<tr>
				<td><font color="#D2D0CF">-</font></td>
			</tr>
		</table>
		<hr width="800px" align="left">
		<table>
			<tr>
				<td><font size="4px"><b>{tmpl_var name='system2'}</b></font></td>
			</tr>
			<tr>
				<td><font color="#D2D0CF">-</font></td>
			</tr>
		</table>
nun ist in jeder Zeile ein HiddenField das den jeweiligen Datensatz identifizieren soll, es wird aus dem Skript mit einer Templatevariablen (vlibTemplate) befüllt, leider habe fehlt mir bei betätigung des okay buttons der Wert im aufgerufenen Skript:

<?
	Global $HTTP_SESSION_VARS;
	require("../header.php");
	@session_start();
	
	if ($s_sessionid==""){
		$tmplK = new vlibTemplate('../Templates/kick_u_tmpl.html');
		$tmplK->pparse();
    }
	else{
		$tmpl = new vlibTemplate('../Templates/Fahrzeugsysteme_tmpl.html');

..........


$dbh=my_connect();
		$br_suche=$dbh->Execute("SELECT * FROM baureihe WHERE Baureihe='$auswahl_br';");
		$brID=$br_suche->fields[0].'';
		$ma_suche=$dbh->Execute("SELECT * FROM markt WHERE Markt='$auswahl_ma';");
		$maID=$ma_suche->fields[0].'';
		$va_suche=$dbh->Execute("SELECT * FROM variante WHERE VarianteLang='$auswahl_va';");
		$vaID=$va_suche->fields[0].'';
		if($auswahl_va == "variant" or $auswahl_va == "Variante"){
			$vaID=0;
		}
		echo $HiddnField;
		$dbh->Execute("UPDATE system SET BaureihenID='$brID', MarktID='$maID', VariantenID='$vaID' WHERE ID = '$HiddenField';");
für die letzte SQL-Anweisung benötige ich den Wert! Ach ja wie ihr seht benutze ich Sessions, um genau zu sein die ADOdb-Bibliothek!

Gruss
Dominik
 
1.) Das Board hat eine Higlightfunktion für PHP- und anderen Code.
2.) Der Action-Parameter im Form-Tag fehlt.
3.) Der Name des Hidden-Fields ist in jedem Loop der gleiche. Das funktioniert sowieso nicht bei mehreren Datensätzen.
4.) Im Hinblick auf die Konfiguration register_globals = off sollten die Post-Variablen aus dem suberglobalen Array abgerufen werden (Bsp.: $_POST['HiddenField']).
5.) Global $HTTP_SESSION_VARS; ist quatsch. Die Globalisierung macht nur innerhalb von Funktionen Sinn. Ausserdem sollte man seit PHP 4.2 $_SESSION verwenden.

snuu
 
1.) Das Board hat eine Higlightfunktion für PHP- und anderen Code.
Ja danke sehr nett
2.) Der Action-Parameter im Form-Tag fehlt.
Dann nimmer er doch standardmäßit Get
3.) Der Name des Hidden-Fields ist in jedem Loop der gleiche. Das funktioniert sowieso nicht bei mehreren Datensätzen.
Doch das funktionier wunderbar, da ja jeder Datensatz ein eigenes Formular darstellt
4.) Im Hinblick auf die Konfiguration register_globals = off sollten die Post-Variablen aus dem suberglobalen Array abgerufen werden (Bsp.: $_POST['HiddenField']).

5.) Global $HTTP_SESSION_VARS; ist quatsch. Die Globalisierung macht nur innerhalb von Funktionen Sinn. Ausserdem sollte man seit PHP 4.2 $_SESSION verwenden.


Cool, die zwei letzten haben geholfen, vielen Dank!

Gruss
Dominik
 
2.) Der Action-Parameter im Form-Tag fehlt.
Dann nimmer er doch standardmäßit Get
Was Du meinst, ist der Parameter "method". Der Vollständigkeit halber:
Code:
<form method="POST" action="pfad/zum/script/script.php">

3.) Der Name des Hidden-Fields ist in jedem Loop der gleiche. Das funktioniert sowieso nicht bei mehreren Datensätzen.
Doch das funktionier wunderbar, da ja jeder Datensatz ein eigenes Formular darstellt
Entschuldige, das konnte man aus dem ungehighlightetem Code nur schwer herauslesen ;)

mfg, snuu
 
Code:
 <input name="send" type="submit" class="Button" value="OK" onclick="this.form.action='System_update.php'">
<input name="send" type="submit" class="Button2" value="{tmpl_var name='loeschen'}" onclick="this.form.action='System_new.php'"></form>

Ist das nicht der fehlende Acion Tag ?!
 
Zurück