Hallo Leute!
Bin richtig am verzweifeln!!! Ich habe mir eine sehr individuelle Extension vorgenommen und aus Unkenntnis vorerst auf die Beschäftigung mit dem kickstarter verzichtet. Somit habe ich meine eigenen Tabellen in der DB angelegt. Damit ich auf diese zugreifen kann, habe ich die Extension page_php_content installiert.
Ich hatte es vorher getestet und konnte ohne Probleme auf Datenbestände zugreifen. Soweit war alles in Ordnung.
Nun baue ich für einen Kunden über ein Login-Formular eine Ausgabe einer gesamten Tabelle. Im Endeffekt bekommt er die Datensätze zeilenweise untereinander aufgelistet. Es soll dabei einige (änderbare, festgelegte) Select-Felder geben. Hierbei soll das entsprechende Select-Feld natürlich bei der Ausgabe den aktuellen Wert des entsprechenden Datenbankfeldes haben. Insgesamtes Ziel ist, dass der Kunde eine Übersicht über (seine wenigen Einräge) hat und z.B. bestimmte Attribute schnell und bequem über die Select-Felder ändern kann. Am Ende des späteren Formulars wird es einen Update-Button geben, worüber dann alle veränderten Datansätze in der DB aktualisiert werden sollen.
Mit page_php_content drehe ich aber gerade dabei durch!!!!! Hier mein Code (ok, bin nicht der Hardcoder, hatte aber bisher mit meinen einfachen Mitteln immer so funktioniert):
<?
$result=mysql_query("SELECT * FROM racer_products ORDER BY id ASC");
//$result=$GLOBALS['TYPO3_DB']->sql(TYPO3_db,"SELECT * FROM racer_products ORDER BY id ASC");
echo "<br />Es sind insgesamt ".mysql_num_rows($result)." Datensätze vorhanden.<br /><br />";
echo "<table border="\"0\"" cellpadding="\"1\"" cellspacing="\"0\"" width="\"99%\""><tr><td><b>Nr.</b></td><td><b>Rubrik</b></td><td><b>Bezeichnung</b></td><td><b>Preis</b></td><td><b>Status</b></td><td><b>Kunde?</b></td></tr>";
//while($row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)) {
while ($row=mysql_fetch_array($result)) {
if ($row['Status']=='frei') {
$selected_frei=" selected";
} else {
$selected_frei="";
}
echo"<tr>
<td>".$row['id']."</td>
<td><select name="\"catname\"" size="\"1\"">
<option value="\"1\"">1.</option>
<option value="\"2\"">2.</option>
<option value="\"3\"">3.</option>
</select></td>
<td><input type="\"text\"" name="\"Bezeichnung\"" size="\"25\"" maxlength="\"50\"" value="\"".$row['Bezeichnung']."\"" /></td>
<td><select name="\"pricevalue\"" size="\"1\"">
<option value="\"1\"">1.</option>
<option value="\"2\"">2.</option>
<option value="\"3\"">3.</option>
</select></td>
<td><select name="\"Status\"" size="\"1\"">
<option value="\"frei\"".$selected_frei."">frei</option>
<option value="\"angefragt\"">angefragt</option>
<option value="\"gebucht\"">gebucht</option>
</select></td>
<td bgcolor="\"red\""> </td>
</tr>";
}
echo "</table>";
?>
Es geht dabei um die Variable $selected_frei (welche sich in der while-Schleife befindet, Zeile 11-15) und die Ausgabe der gleichen Variablen in Zeile 31.
In der HTML-Ausgabe wird an entsprechender Stelle nicht der vermutete Wert der Variablen ausgegeben (" selected" oder ""), sondern komischerweise "selected='selected' ". Was soll das???
Wie kann ich den von mir festgelegten Wert ausgeben???? Ich checke das einfach nicht.
Die Ausgabe von Datenbankfelder klappt ohne jegliche Probleme. In diesem Fall überprüfe ich aber den Inhalt einiger Felder. Sobald ich aber neue Variablen definiere und diese in meinem echo-Code ausgeben will, werden diese nicht in herkömmlicher Weise ausgegeben. Statt "selected" steht dann "selected='selected'" an entsprechender Stelle. Warum? Was mache ich falsch??????