Seite 1 von 1

Drop-Down-Feld

Verfasst: 01.09.2007 00:40
von nickvergessen
Wollte mal Fragen, wie man das macht, dass bei der Auswahl einer Option im Dropdown-Menü für diesen gleich eine Aktion gemacht wird.
Falls ich mich jetzt zu doof ausgedrückt hab, hier mal ein Beispiel wie ich das mein.
Einfach mal diesen Kasten:
[ externes Bild ]
auf der Seite benutzen:
http://www.phpbb.com/bugs/phpbb3/tickets.php

Normale DropDowns bekommt man ja mit folgendem Code:

Code: Alles auswählen

<select name="field"><option value="bla">muh</option><option value="bla2">muh2</option></select>
Und zum Absenden dann das ganze in ein

Code: Alles auswählen

<form id="postform" method="post" action="{S_POST_ACTION}" onsubmit="return checkForm(this);"{S_FORM_ENCTYPE}>

			<fieldset>
				<input accesskey="s" tabindex="6" name="post" type="submit" value="{L_SUBMIT}" class="button1" />
			</fieldset>
	</form>
Packen, aber wie mach ich das, dass sofort abgesendet wird und man nicht erst den absende Button drücken muss?

Verfasst: 01.09.2007 09:45
von Dr.Death

Verfasst: 01.09.2007 11:07
von nickvergessen
Ha, genau das hab ich gesucht, danke Dr.Death

Edit:
Scheint aber irgendwie nicht ganz zufunktionieren.
im Template hab ich jetzt:

Code: Alles auswählen

		<form id="postform" action="{S_POST_ACTION}">
				<strong>{L_BT_BUG_SHOWING}</strong>:&nbsp;
				<select name="status" method="post" onchange="submit();">
<option value="2">muh</option>
<option value="3">muh2</option>
				</select>
		</form>
Der Code in der viewcat.php

Code: Alles auswählen

$submit		= (isset($_POST['post'])) ? true : false;
$new_status = utf8_normalize_nfc(request_var('status', '', true));
if (($submit) && ($new_status))
{
	redirect(append_sid("{$phpbb_root_path}viewcat.$phpEx",  'st=' . $new_status . '&c=' . request_var('c', 0)));
	//echo $new_status;
}
statt auf viewcat.php?st=3&c=6 zulanden, komm ich auf viewcat.php?status=3 raus, kannst du mir da nochmal helfen ;)

Ausgangs-Seite war übrigens: viewcat.php?c=6

//Edit:
So, habs nun mit Hilfe und Tipp von Dr.Death gelöst:

Code: Alles auswählen

<form id="postform" action="{S_POST_ACTION}">
	<strong>{L_BT_BUG_SHOWING}</strong>:&nbsp;
	<select name="status" method="post" onchange="submit();">{STATUS_DROP_DOWN}</select>
	<input type="hidden" name="cat" value="{BUG_CAT_ID}" />
</form>

Code: Alles auswählen

$new_status = request_var('status', '');
$cat_id2 = request_var('cat', 0);
if ($new_status)
{
	redirect(append_sid("{$phpbb_bug_root_path}viewcat.$phpEx",  'st=' . $new_status . '&c=' . $cat_id2));
	//echo $new_status;
}
Das sind nun meine Code-Schnippsel und es funktioniert perfekt.
Die fehlende Cat_id wird dabei einfach über ein Hidden-Field übergeben