Variablen von einem dynamischen Dropdown Formular in PHP übernehmen

modscho

Grünschnabel
Hallo!

Ich kann in meinem Formular "addnews" nicht auf die in das Dropdown-Menü dynamisch geladenenen Werte (hier Kategorien) zugreifen, um diese dann weiter verarbeiten zu können.

Ich will vorest beim Absenden des Formulars nur anzeigen, welche Kategorie ausgewählt wurde,

...und dann in weiterer Folge die Eingaben in der Datenbank abspeichern.

Wie funktioniert das?
Ich ersuche Euch um Hilfe und danke schon jetzt für Eure fachkundige Erklärung.

LG modscho


PHP:
<?php
//Verbindung Mysql-Datenbank
include ("connect.php");

if ($action == "add")
	{
	 if ($form_titel == "" OR form_nachricht == "")
	 	{
		 echo "Es wurde keine Nachricht aufgenommen!</br>";
		 echo "Bitte fülle entweder die Felder Titel oder Nachricht aus.";
	 	 echo "<p></p>";		
		} 
	else
		{
		 if ($form_kategorie == "$kategorie")
		 	{	
		 	 echo "Sie haben gewählt: $kategore."; 
		 	 echo "<p></p>";		
		 	}
		 echo "Vielen Dank für den neuen Nachrichteneintrag";
		}
	}
	
else
{

?>
<form action="addnews3.php?action=add" method="post" name="" id="">
          <table width="696" border="0">
            <tr>
              <td width="101" height="30" align="left" valign="top"><div align="right">Titel: </div></td>
              <td width="585" valign="top"><input name="form_titel" type="text" id="form_titel" size="80"></td>
            </tr>
            <tr>
              <td height="30" align="left" valign="top"><div align="right">Kategorie: </div></td>
              <td valign="top"><p>
                  <select name="form_kategorie" id="form_kategorie">
                    <option>W&auml;hle Kategorie</option>
 <?php
			$sql = "SELECT * FROM newskategorie ORDER BY kategorieid ASC";
	 		$ergebnis = mysql_query($sql);
			if ($ergebnis)
				{
			 	 while ($reihe = mysql_fetch_array ($ergebnis))
		 	  		{
					 //$kategoriename = $_POST['kategoriename'];
					 $kategoriename = $reihe['kategoriename'];
									 
					 echo "<option>$kategoriename</option>";
					}
				}
			else 
				{
				echo "Es können keine Kategorien angezeigt werden";			
				}
?>
                  </select>
              </p></td>
            </tr>
            <tr>
              <td height="30" align="left" valign="top"><div align="right">Nachricht: </div></td>
              <td valign="top"><textarea name="form_nachricht" cols="80" rows="15" id="form_nachricht"></textarea></td>
            </tr>
            <tr>
              <td height="30" align="left" valign="top"><div align="right"></div></td>
              <td valign="top"><input type="submit" name="Submit" value="Nachricht senden">
                  <input type="reset" name="Submit" value="Zur&uuml;cksetzen"></td>
            </tr>
          </table>
</form>
<?php
}
?>
 
PHP:
echo "<option>$kategoriename</option>"
Du hast hier vergessen jedem Eintrag auch einen Wert zuzuweisen. Deshalb wird auch nichts übergeben. Die grundlegene Syntax lautet:
Code:
<option value="wert der übergeben wird">Anzeigewert</option>

snuu
 
Die Variable mit <option value> zu übergeben, war leider erfolglos - schon bevor ich diesen Beitrag gesendet habe. :(, trotzdem danke für den Hinweis

die alte schleife mit variablenübergabe:
PHP:
			$sql = "SELECT * FROM newskategorie ORDER BY kategorieid ASC";
	 		$ergebnis = mysql_query($sql);
			if ($ergebnis)
				{
			 	 while ($reihe = mysql_fetch_array ($ergebnis))
		 	  		{
					 				 $kategoriename = $reihe['kategoriename'];
 					  
					 echo "<option value \"addnews2.php?action=add?kategoriename=$kategoriename\">$kategoriename</option>";
              }
}


die If-bedingung war:
PHP:
		 if ($form_kategorie == "$kategoriename")
		 	{	
		 	 echo "Sie haben gewählt: $kategoriename."; 
		 	 echo "<p></p>";		
		 	}
ich denke, daß hier folgendes Problem vorlegt: dadurch, daß das Formular an sich selbst gerichtet ist, gibt es konflikte bei der Variablenübergabe. meine

grüsse modscho
 
Verwende mal für alle Variablen, die an das Script übergeben werden nicht diese Form:
PHP:
$kategoriename
sondern diese:
PHP:
$_POST['kategoriename']
Und halte bitte auch meinen Vorschlag aus dem vorherigen Post ein!

snuu
 
Wenn ich Dich richtig verstehe, willst du, die Werte "irgendwie" auswerten lassen, oder? Sei es Newsscript oder sonstiges.

Ich habe es auch und es Läuft einwandfrei. Wenn ich eine News schreiben möchte, kann ich ein Thema wählen (PHP, Hardware, Photoshop,...) diese Werte werden richtig übernommen. Zu meinem Script habe ich ein Tutorial geschrieben, welches Du Dir hier ansehen kannst.
 
@Claas Meckelnburg

auch dir, danke für den hinweis. mein code unterscheidet sich von deinem code, darin, daß du deine Auswahlfelder statisch (über den HTML-Code) lädst.

Bei mir werden, die Daten aber aus der Tabelle newskategorie dynamisch in das Menü geladen.

@snuu
Ich habe schon vieles mit der <option value> -Syntax ausprobiert. Nur wie soll ich die Variable $kategoriename in der <option value> defnieren? Ich habe ja im Formularkopf defniert, daß beim Absenden des Formulars die Variable $action auf "add" gesetzt wird.
Und jetzt soll noch die Formvariable $form_kategorie mit dem jeweils ausgewählten Wert $kategoriename zusätzlich übermittelt werden.
Muß nun die Variable auch im formularkopf definiert werden?
Dabei stellt sich auch die Frage, wo ich das $_POST ['kategoriename'] platzieren soll? (in der Schleife oder beim Skriptanfang)


lg modscho
 
Ooops, das 'dynamisch' hatte ich übersehen. ;)

Hm...wie meinst Du denn dynamisch? Ich versuche mir vorzustellen, wofür man sowas gebrauchen kann aber kann ja sein, dass ich ( mal wieder ) eine Denkblockade habe.
 
Zurück