PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Automatisches Submiten per Klick auf auswahl ;)



Maisaffe
18.12.2004, 14:06
<form action="index.php?open=save" method="post">
<select name="vote" size="1">
<option selected>Auswahlmen&uuml;:</option>
<option value="1">Gut</option>
<option value="2">Befriedigend</option>
<option value="3">Ganz Nett</option>
<option value="4">Schlecht</option>
</select>
</form>

Das ganze soll sich jetz aber ohne nen <input> "submit" abspielen.
Bei SelfHTML habe ich leider nichts dazu gefunden, sondern nur reseten und absenden des Inhaltes.
Ich möchte jedoch, das sich die Auswahl selbständig abschickt. (bis auf Auswahlmenü ;))

Dennis

dadie
18.12.2004, 14:13
Also das hier müsste klappen habe ich vom alten Orc geklaut :D






<head>
<script type="text/javascript">
<!--
function change() {
target = document.getElementById("navigationmenu").options[document.getElementById("navigationmenu").selectedIndex].value;
if(target && target != "index.php")
document.location.href = document.getElementById("navigationmenu").options[document.getElementById("navigationmenu").selectedIndex].value;
return false;
}
-->
</script>
</head>

<body>
<!-- PullDown-Navigationsmenü -->
<form action="goto.php" method="get" onsubmit="javascript:return change();">
<p class="navigationmenu">
<select size="1" name="goto" onchange="javascript:change();" id="navigationmenu">
<option value="">Gehe zu</option>
<optgroup label="dead_orc's Forum">
<option value="index.php">Startseite</option>

<option value="staff.php">Staff</option>
<option value="user.php">Mitglieder</option>
<option value="faq.php">FAQ</option>
<option value="search.php">Suche</option>
</optgroup>
<optgroup label="Benutzermenü">
<option value="edit_profile.php">Profil bearbeiten</option>

<option value="edit_sig.php">Signatur ändern</option>
<option value="edit_avatar.php">Avatar ändern</option>
<option value="edit_password.php">Passwort ändern</option>
<option value="logout.php">Abmelden</option>
<option value="pms.php?folderid=2">Private Nachrichten</option>
<option value="pms.php?folderid=1">&nbsp; &nbsp; &nbsp; Postausgang</option>

<option value="newpm.php">&nbsp; &nbsp; &nbsp; Neue Private Nachricht schreiben</option>
</optgroup>
<optgroup label="Foren">
<option value="show_forum.php?id=1">Lob, Bugs und Kritik</option>
<option value="show_forum.php?id=3">Info-Forum</option>
<option value="show_forum.php?id=4">PC-Forum</option>

<option value="show_forum.php?id=5">&nbsp; &nbsp; &nbsp; PC-Spiele</option>
<option value="show_forum.php?id=6">&nbsp; &nbsp; &nbsp; Homepage/Webseiten-Forum</option>
<option value="show_forum.php?id=7">Spam</option>
</optgroup>

</select>
<input type="submit" value="Los!" /><br />
<script type="text/javascript">
<!--
for(i=0;i<document.getElementById("navigationmenu").options.length;i++) {
target = document.getElementById("navigationmenu").options[i].value.split('?');
if(target[0] == "index.php" && target[0] != "index.php")
document.getElementById("navigationmenu").options[i].selected = true;
}
-->
</script>
<!-- Ende PullDown-Navigationsmenü -->

</body>

Maisaffe
18.12.2004, 14:23
JavaScript ist blöd ;)

Also um ehrlich zu sein... fand ich irgendwie nix brauhbares ^^°
Kannst du nochmal gucken, was ich da einfügen müsst bei mir, damit das genauso ähnlich wie bei Orcs Forum klappt?

Dennis

Dingsi
18.12.2004, 15:10
ungetestet:
<form id="auswahl" action="index.php?open=save" method="post">
<select name="vote" size="1" onChange="document.getElementById('auswahl').submit();">
<option selected>Auswahlmen&uuml;:</option>
<option value="1">Gut</option>
<option value="2">Befriedigend</option>
<option value="3">Ganz Nett</option>
<option value="4">Schlecht</option>
</select>
</form> afaik sollte das so gehen.

Crash-Override
18.12.2004, 15:14
ungetestet:
<form id="auswahl" action="index.php?open=save" method="post">
<select name="vote" size="1" onChange="document.getElementById('auswahl').submit();">
<option selected>Auswahlmen&uuml;:</option>
<option value="1">Gut</option>
<option value="2">Befriedigend</option>
<option value="3">Ganz Nett</option>
<option value="4">Schlecht</option>
</select>
</form> afaik sollte das so gehen.

Geht auch, ist aber JaveSkript ;)

Dingsi
18.12.2004, 15:17
äh. ja und?

ich mag einfach mal behaupten, dass es zu unserem jetzigen zeitpunkt keine andere alternative als javaskript gibt um soetwas zu realisieren. O_o.

Maisaffe
18.12.2004, 15:34
Und was bekomme ich als Ergebnis wenn auf eine Auswalh geklickt wurde?

vote=3 als variable irgendwo einfügbar?

Dennis

kk, per get habi ch vote=3 wenn ich 3 auswähle ;)

EDIT:
WIe empfehlenswert ist es, dass ich

action=
in

action="#&open=story"
umgeändert habe?

dead_orc
18.12.2004, 16:05
Das ist gar nicht empfehlenswert: Ich denke, das geht nicht!
Der Code geht auch einfacher:

<form action="index.php?open=save" method="post">
<select name="vote" size="1" onchange="this.form.submit();">
<option selected>Auswahlmen&uuml;:</option>
<option value="1">Gut</option>
<option value="2">Befriedigend</option>
<option value="3">Ganz Nett</option>
<option value="4">Schlecht</option>
</select>
</form>
In PHP kannst du auf die Auswahl hinterher mit $_POST['vote'] zugreifen. Wenn man beispielsweise "Gut" auswählt, enthält diese Variabel 1. (Bei älteren Version musst du $HTTP_POST_VARS['vote'] benutzen, du hast aber eine neue Version :D)

@dadie: Is ja schön, dass du Copygerightete Skripts einfach kopierst und anderen gibst :p

Maisaffe
18.12.2004, 17:29
Das ist gar nicht empfehlenswert: Ich denke, das geht nicht!
Der Code geht auch einfacher:

<form action="index.php?open=save" method="post">
<select name="vote" size="1" onchange="this.form.submit();">
<option selected>Auswahlmen&uuml;:</option>
<option value="1">Gut</option>
<option value="2">Befriedigend</option>
<option value="3">Ganz Nett</option>
<option value="4">Schlecht</option>
</select>
</form>
In PHP kannst du auf die Auswahl hinterher mit $_POST['vote'] zugreifen. Wenn man beispielsweise "Gut" auswählt, enthält diese Variabel 1. (Bei älteren Version musst du $HTTP_POST_VARS['vote'] benutzen, du hast aber eine neue Version :D)

@dadie: Is ja schön, dass du Copygerightete Skripts einfach kopierst und anderen gibst :p
Zum PHP: Stimmt! *sich an die Stirn schlägt*

Zu
action="index.php?open=save", ich möchte das zB. der aktuelle link erweiter wird (auf dem man gerade ist):
/index.php?open=news
>> Es wird gevotet in der Vote-Bar
/index.php?open=news&vote=save

Dennis

dead_orc
18.12.2004, 17:43
Das Problem ist, dass alle GET-Variablen im action-Attribut überschrieben/gelöscht werden beim Abschicken des Formulars (das Prob hatte ich auch schon).
Alternative wäre etwa so:

<form action="index.php?open=save" method="get">
<input type="hidden" name="open" value="<?php echo $_GET['open']; ?>" />
<input type="hidden" name="vote" value="save" />
<select name="vote" size="1" onchange="this.form.submit();">
<option selected>Auswahlmen&uuml;:</option>
<option value="1">Gut</option>
<option value="2">Befriedigend</option>
<option value="3">Ganz Nett</option>
<option value="4">Schlecht</option>
</select>
</form>

Maisaffe
18.12.2004, 17:47
ich will doch post benutzen Oô

Ich meinte mit link:
index.php?open=news
>> wenn jetz ein vote abgesendet wurde:
index.php?open=news&vote=save

oder

index.php?open=hinweis
>> wenn jetz ein vote abgesende wird:
index.php?open=hinweis&vote=save

Das nur eine zwote 'variable' hinter das open=XYZ kommt ;)

Dingsi
18.12.2004, 18:14
du sendest auch per POST nur variablen. also kannst du ruhig <input type="hidden" name="vote" value="save" /> machen und in deinem script dann halt darauf zugreifen. mit $_POST. dann gibts auch noch $_REQUEST. das kannst du benutzen wenn dein script sowohl daten aus POST und GET empfangen soll. in $_REQUEST ist einfach alles drin was in $_POST, $_GET und $_COOKIE ist. jo.
ich weiß irgendwie nicht ganz wo dein problem liegt.

Maisaffe
18.12.2004, 19:17
mein problem:
rechts von der haupseite habe ich nen votekasten.
Wenn ich dort jetz vote, wird ja ein neuer link geöffnet.
Ich möchte jedoch, das der alte (die mitte) so bleib wie vorher, und das vote sich trotzdem ändert.

Deswegen möchte ich das das vote die url so läst (als würde man bei dem link # eintragen), jedoch '&vote=save' an die url ahnängt (damit das gevotet geschrieben wird in ne datei).

Einfahc nur, das vote=save hinter dir url dazukommt ;)

Dennis

Manni
18.12.2004, 20:56
Dann änder das in der index.php:


<form action="index.php?open=<? echo $_REQUEST['open']; ?>&vote=save" method="get">
<select name="vote" size="1" onchange="this.form.submit();">
<option selected>Auswahlmen&uuml;:</option>
<option value="1">Gut</option>
<option value="2">Befriedigend</option>
<option value="3">Ganz Nett</option>
<option value="4">Schlecht</option>
</select>
</form>

Das müsste gehen ;)

Manni

Maisaffe
18.12.2004, 23:20
Dann änder das in der index.php:


<form action="index.php?open=<? echo $_REQUEST['open']; ?>&vote=save" method="get">
<select name="vote" size="1" onchange="this.form.submit();">
<option selected>Auswahlmen&uuml;:</option>
<option value="1">Gut</option>
<option value="2">Befriedigend</option>
<option value="3">Ganz Nett</option>
<option value="4">Schlecht</option>
</select>
</form>

Das müsste gehen ;)

Manni

Ich kann das jetz im moment net testen, da ich pennen gehen soll :(
Aber das
index.php?open=<? echo $_REQUEST['open'] macht, das die momentan url nochmal kopiert wird mit dem ahnang des votes?

also wie gewollt: index.php?open=blub&vote=save ?

Dennis

Manni
19.12.2004, 09:13
Sollte es zumindest. Es setzt den aktuellen $open-Wert in die URL ein, egal ob Cookie, Get oder Post. Das müsste eigentlich immer funktionieren :D

Manni

Maisaffe
21.12.2004, 16:23
Sollte es zumindest. Es setzt den aktuellen $open-Wert in die URL ein, egal ob Cookie, Get oder Post. Das müsste eigentlich immer funktionieren :D

Manni
also die url wird passend geändert ;)


action="index.php?open=<? echo $_REQUEST['open']?>&vote=save"

Mal ein fettes Danke an alle meine Helden hier :D

Dennis