Select - Menue auswerten
Alex
- php
Hallo,
ich habe ein kleines Problem und komme nicht weiter.
Ich habe eine Seite, da soll der Nutzer mit einen Select-Menü ein Projekt auswählen.
Entwerder nach dem Auswählen (onChange) oder wenn man den Submit-Button drückt, will ich auf der gleichen Seite den Post auswerten und eine Tabelle mit einer Abfrage füllen, anhand der ausgewählten Projektnummer (select Menu).
Ich möchte erstmal den Schritt machen und mir die gewählte Projekt-Nummer anzeigen lassen, funktinoert das, kann ich ja die Abfrage basteln.
Wie bekomme ich das hin, das mein Formular mir den ausgewählten Wert schickt und ich ihn auf der gleichen Seite auswerte?
Danke.
Hier der gekürzte Code:
<body>
<hr>
<p>
<?php
$connectionid = mysql_connect ("localhost", "user", "passwd");
if (!mysql_select_db ("intranet", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
echo "<form name='form_proj' method='post' >";
echo '<select name="project" onchange="window.location.href = "dropdown-test.php"">';
$sql = "Select * from project ";
$project_res = mysql_query($sql ,$connectionid);
while($project = mysql_fetch_assoc($project_res))
{
#echo '<option>'.$project['project_id']. ' ' .$project['project_name1'].'</option>'; onchange="alert(this.form.project.options[this.form.project.selectedIndex].value)
#onchange="this.form.action= this.options[this.selectedIndex].value; this.form.submit();"
echo '<option value="'.$project['project_id'].'">'.$project['project_id'].' '.$project['project_name1'].'</option>';
}
echo '</select>';
echo '<input type="submit" name="Submit" value="Submit">';
echo '</form>';
mysql_close($connectionid);
?>
<p> </p>
<p>
<?php
if (isset($_POST['Submit']))
{
echo "TEST";
$meinselect = $_POST['Submit'];
echo $meinselect;
}
?>
</p>
<p> </p>
<p>
<label>
<select name="select">
</select>
</label>
</p>
</body>
</html>
Hallo,
nimm die alternative syntax. ausgeechoter html-quelltext ist eine echte qual. und wisse, dass der server von "onchange" oder ähnlichem nix mitbekommt, wenn du dadurch (s.a. ajax) nicht einen neuerlichen request sendest.
Gruß
jobo
nimm die alternative syntax. ausgeechoter html-quelltext ist eine echte qual. und wisse, dass der server von "onchange" oder ähnlichem nix mitbekommt, wenn du dadurch (s.a. ajax) nicht einen neuerlichen request sendest.
Sorry ich versteh nur Bahnhof, welche alternative Syntax soll ich nehmen?
Ich würde auch auf das "onchange" verzichten und über Formular gehen:
Ein Select-Menü gefüllt von PHP und dann ein Submit per Button.
Aber wie kann ich da auswerten was in dem Menü gewählt wurde?
Wie komme ich nur in HTML & PHP
an (this.form.project.options[this.form.project.selectedIndex].value)
ran?
Hi,
(this.form.project.options[this.form.project.selectedIndex].value)[/code]
ran?
»»
echo "<form name='form_proj' method='post' >";
gut wäre eine aktion anzugeben (und double quotes zu verwenden):
echo '<form name="form_proj" method="post" action="'.$_SERVER['PHP_SELF'].'">';
und dann die entsprechende Variable anzusprechen:
if(isset($_POST['project']))
{
var_dump($_POST['project']);
}
naja, und dann könnte es schon werden :)
Viel Erfolg,
Jonny 5
Hallo Jonny, die action hat mir gefehlt, jetzt wenn ich es sehe, ist es logisch, manchmal hat man Tomaten vor den Augen.
echo '<form name="form_proj" method="post" action="'.$_SERVER['PHP_SELF'].'">';
Klar ich muß ja 'project' beim Post abfragen, ich will ja den Wert des Menüs
> ~~~php
> if(isset($_POST['project']))
> {
> var_dump($_POST['project']);
> }
>
Danke für die schnelle, gründliche und erfolgreiche Hilfe.
Funktioniert perfekt!!!
Hallo,
nimm die alternative syntax. ausgeechoter html-quelltext ist eine echte qual. und wisse, dass der server von "onchange" oder ähnlichem nix mitbekommt, wenn du dadurch (s.a. ajax) nicht einen neuerlichen request sendest.
Sorry ich versteh nur Bahnhof, welche alternative Syntax soll ich nehmen?
PHPs http://www.php.net/manual/de/control-structures.alternative-syntax.php
Ich würde auch auf das "onchange" verzichten und über Formular gehen:
Du verstehst m.M.n. nicht das dahinterliegende Prinzip. Onchange ist javascript und spielt sich nur innerhalb des Dokumentes ab, solange du nicht einen neuen httprequest machst.
Ein Select-Menü gefüllt von PHP und dann ein Submit per Button.
Aber wie kann ich da auswerten was in dem Menü gewählt wurde?Wie komme ich nur in HTML & PHP
an(this.form.project.options[this.form.project.selectedIndex].value)
ran?
Garnicht. Javascript könnte höchstens Daten an den Server liefern, der dann wiederum entweder ein komplett neues HTML-Dokument zurückgibt, oder Javascript-Code (Stichwort hier auch: JSON).
Beispiel für alternative Syntax:
<?php
$data = array("a","b");
?>
<ul>
<?php foreach($data as $datum):?>
<li><?= $datum?></li>
<?php endif?>
</ul>
untested
Gruß
jobo