Radiobuttons und Selectfelder werden zu spät erstellt?

DeMoehn

Mitglied
Guten Tag.
Ich will einen Editor machen, für meine Kategorien. Jetzt hab ich ma was gescriptet, und zwar sieht das ganze so aus, das links eine selectBar ist, in der alle vorhandenen Kategorien stehen, rechts ist dann ein textfeld und 2 radiobuttons, Delete/edit.
Wenn ich jetzt zum erstemal etwas auswähle, zeigt er nichts an, beim zweitenmal schon. KLICK
Schauts euch ruhig an, eine funktion zum löschen, edit gibts noch nicht, also keine angst das was gelöscht wird...
Hier ist mal das script
PHP:
<?php
include("config.inc.php");
$auswahl = array();
mysql_connect($dbserver,$nutzer,$passwort);
$abfrage = "SELECT id, name FROM dropD ORDER by name";
$res = mysql_db_query($dbname, $abfrage);
while ($reihe = mysql_fetch_object($res)){
$auswahl .='<option value="'.$reihe->id.'">'.$reihe->name.'</option>';
}
echo '<form action="index.php?link=tabEdit&id='.$kat.'&do='.$radiogroup.'" method="POST" name="form">';
echo '<table width="100%" border="0" cellspacing="2" cellpadding="0">';
echo '<tr>';
echo '<td align="right"><select name="kat" class="dropdown">';
echo '<option selected">Kategorien</option>';
echo $auswahl;
echo '</select> ';
echo '</td>';
echo '<td width="5"></td>';
echo '<td><input type="text" name="textfieldName" size="24"></td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right">L&ouml;schen?</td>';
echo '<td width="5"></td>';
echo '<td><input type="radio" name="radiogroup" value="delete"></td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right">Editieren?</td>';
echo '<td width="5"></td>';
echo '<td><input type="radio" name="radiogroup" value="edit"></td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right"></td>';
echo '<td width="5"></td>';
echo '<td><input type="submit" name="senden" value="Senden"></td>';
echo '</tr>';
echo '</table>';
echo '</form>';
?>
Hilfe wäre sehr nett, ich denke das das <form> zu früh kommt, und deswegen die $radiobutton und &kat noch nciht kennt. Thx schonma, bis denne
 
oO ja muss schon sehr schwer sein es zu übersehen, dass du zuerst ein select machst und dann das Formtag auf... Vorallem wenn dus schon selbst sagt -.-
 
Wo setzt du $radiogroup beim ersten Aufruf der Seite?
Wo setzt du $kat beim ersten Aufruf der Seite?
Da kann nichts funktionieren.

Und warum sehe ich nirgends ein $_POST oder $_GET?

Versuch den Aufbau der Seite mal logisch, Schritt für Schritt nachzuvollziehen, dann fällt dir sowas auch auf. ;)


byez
 
Ich brauch doch noch gar kein $_POST oder $_GET.
Ich bin momentan nur soweit, das in der Adresse die ID und Do steht
Die ID bekomm ich aus $kat und das Do aus $radiogroup.
Allerdings wird meiner Meinung nach $kat und $radiogroup zu spät definiert, allerdings das ganze nicht wenn ich das formfile darunter setzte.
Hat denn keiner eine Idee?
 
Wieso machst du es dir denn so schwierig?

Das
PHP:
echo '<form action="index.php?link=tabEdit&id='.$kat.'&do='.$radiogroup.'" method="POST" name="form">';
kürzen wir auf das
PHP:
echo '<form action="index.php?link=tabEdit" method="post" name="form">';

Das
PHP:
echo '<td align="right"><select name="kat" class="dropdown">';
ändern wir in
PHP:
echo '<td align="right"><select name="id" class="dropdown">';

Und das beides
PHP:
echo '<td><input type="radio" name="radiogroup" value="delete"></td>';
PHP:
echo '<td><input type="radio" name="radiogroup" value="edit"></td>';
in das
PHP:
echo '<td><input type="radio" name="do" value="delete"></td>';
PHP:
echo '<td><input type="radio" name="do" value="edit"></td>';

Wenn du nun dieses Formular absendest, überprüfst du auf der nächsten Seite die ganzen $_POST-Werte und das wars. Keine doppelte Wertzuweiseung etc. ;)


byez
 
Falscher Ansatz durch falsche Denkweise.
Die eingegebenen Werte in dem Formulare werden erst durch das Abschicken des Formulars an den Server erreichbar. Logischweise sind die beiden Variablen dann also noch völlig unbekannt wenn das Formular noch nicht abgeschickt wurde.
Außerdem schickst du das Formular per POST ab, wozu also dann über GET (= Parameter über URL) die Daten , vor allem auch noch manuell, übergeben?
Ich brauch doch noch gar kein $_POST oder $_GET.
Ach nein? Was glaubst du denn wie deine Werte aus URL in deinem Script erreichbar werden?
Über $_GET holst du Werte aus der URL (geht zwar mit bestimmten php.ini Einstellungen auch ohne, aber der Sauberkeit und Übersichtlichkeit immer $_GET verwenden!).
Da du aber das Formular per POST abschickst, kannst du getrost auf $_GET verzichten und $_POST verwenden.
Das sind einfach Grundlagen die man können sollte!
 
Zuletzt bearbeitet:
Jo, merci @ sagg.
Als ich heut morgen überlegt hab, dachte ich mir auch ma ob ich das direkt per $_POST holen sollte^^ Ich machs dann mal so, thx
und @ suye: Ich sagte nur das ich zur zeit NOCH kein $_GET bzw. $_POST brauche, weil ich ja alles oben in die addy schreiben wollte. Wenn ich dann später sagen will if($do == "edit") {} dann muss ich natürlich if($_GET['do'] == "edit") {} schreiben, aber trozdem danke für den Hinweis
 
Zurück