it-swarm.com.de

HTML Formular bei Dropdown-Änderung senden

Guten Morgen!

Ich weiß, dass dieses Thema bereits am SO behandelt wurde, aber ich konnte unten nicht die vollständige Antwort auf meine spezifische Situation finden. Ich entschuldige mich, wenn ich die Antwort anderswo verpasst habe.

Umfang:

Was ich zu erreichen versuche, ist eine Dropdown-Liste (entweder mit reinem HTML- oder Java-Skript erstellt, HTML wird bevorzugt), die eine PHP-Datei laden kann. Innerhalb dieser PHP-Datei sollte es möglich sein, auf den Wert der ausgewählten Dropdown-Liste zuzugreifen.

Was ich versucht habe:


Methode 1:

Ich habe eine Methode wie folgt verwendet:

<form action="test.php" method="post">
<select name="dropdown" id="dropdown">
<option value="value1">Option 1</option>
<option value="value2">Option 2</option>
</select>
<input name="submitbutton" type="submit" value="submit" />
</form>

Wenn Sie dann auf die Schaltfläche "Senden" klicken, wird die test.php-Seite geladen und ich kann den Wert der Dropdown-Liste mit $ _POST ("Dropdown") ermitteln. Diese Methode funktioniert einwandfrei! Ich möchte jedoch das Formular OHNE Notwendigkeit der Schaltfläche absenden, stattdessen einfach das Dropdown-Ereignis onchange verwenden.


Methode 2:

Ich habe auch versucht mit:

<form>
<select name='dropdown' onchange='this.form.submit()'>
<option value="value1">Option 1</option>
<option value="value2">Option 2</option>
</select>
<noscript><input type="submit" value="Submit"></noscript>
</form>

dadurch wird die Seite bei Änderung neu geladen, nicht jedoch die test.php-Seite. Das Ändern von "this.form.submit ()" in test.php funktioniert nicht.


Ich fühle mich mit beiden eng verbunden, aber nicht ganz da. Ich hoffe, was ich erreichen möchte, ist gut genug erklärt.

Vielen Dank für alle Antworten im Voraus!

6
Eric F

Hinzufügen:

<form action="test.php" method="post">

Um method2 und es sollte gut funktionieren.

7
michal.hubczyk

Geben Sie Ihrem Formular einen Namen:

<form name="form1" action="test.php">

.... dann wäre dein Austausch: document.form1.submit();

Übrigens, das hat nichts mit PHP zu tun, da es zu 100% auf dem Client liegt.

Versuchen Sie es mit Ajax

jQuery:

$(document).on("change", "select#dropdown", function(){
    $.ajax({
         url: 'http://localhost/test/action.php',
         type: "post",
         data: $("#myform").serialize();,
         success: function(response) {
             $('select#dropdown').after("dropdown changed!");
         }
    });
});
0
user2567536

Sie haben vergessen, 'action="test.php"' und 'method="post"' in Ihrem for-Tag einzufügen. Ihre IInd-Methode sollte daher wie folgt aussehen:

HTML Quelltext:

<form action="test.php" method="post">
<select name='dropdown' onchange='this.form.submit()'>
<option value="value1">Option 1</option>
<option value="value2">Option 2</option>
</select>
    <noscript><input type="submit" value="Submit"/></noscript>
</form>

und es wird funktionieren und Sie können Ihre Post-Daten mit print_r($_POST) in test.php anzeigen. Es zeigt Ihnen dropdown Wert :)

0
Neeraj Singh