HTML在下拉列表更改时提交表单

时间:2014-03-20 15:17:27

标签: javascript php jquery html

早上好!

我知道此主题已经在SO上讨论过了,但我找不到下面具体情况的完整答案,所以如果我在其他地方错过了答案我会道歉。

范围:

我想要实现的是一个可以加载php文件的下拉列表(使用纯HTML或java脚本完成,首选HTML)。在该php文件中,它应该能够访问所选的下拉值。

我尝试了什么:


方法1:

我之前使用过这样的方法:

<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>

然后单击提交按钮,test.php页面加载,我可以使用$ _POST(“下拉列表”)获取下拉列表的值。这种方法完美无缺!但是我想提交表单而不需要按钮,只需使用下拉onchange事件即可。


方法2:

我也尝试过使用:

<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>

将重新加载页面onchange而不是test.php页面。将“this.form.submit()”更改为test.php不起作用。


我觉得我和两个人都很亲密但并不完全相同。我希望我所要达到的目标能够得到很好的解释。

感谢您提前做出任何回复!

4 个答案:

答案 0 :(得分:7)

添加:

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

对于method2,它应该可以正常工作。

答案 1 :(得分:3)

为表单命名:

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

....然后你的onchange将是:document.form1.submit();

顺便说一下,这与PHP无关,因为它在客户端上是100%。

答案 2 :(得分:0)

您忘记在for标记中添加“action="test.php"”和“method="post"”。因此,您的IInd方法应如下所示:

HTML代码:

<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>

它会起作用,您可以在print_r($_POST)中使用test.php显示您的帖子数据。它会显示dropdown值:)

答案 3 :(得分:0)

尝试使用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!");
         }
    });
});