当用户从下拉列表中选择一个选项时,执行POST命令

时间:2013-11-19 22:06:18

标签: javascript php html5

我正在设置一个页面,其中第一步是让用户从下拉列表中进行选择。我不想要求用户首先进行选择,然后单击提交按钮,因为此时他们没有其他任何操作。这是页面的FORM元素部分的代码片段。

<form action="index.php" target="_self" method="post">
<label style:padding:1px margin:0px font-size:12px>Last Name</label>
<select name="UniqueLastNames" onchange="checkField(this.value)">
(the option values are wrapped in php and get their values from a database)

我知道通常最后一部分是使用type = submit的input元素,但我只想让用户在列表中做出选择后立即运行POST操作。 Java Script的checkFidld()返回所选的名称,它当前将它放入我的表单上的标签中,只是证明下拉列表正在工作。

我也更喜欢使用POST而不是GET,因此用户无法更改URL,是的,用户实际上停留在同一页面上,当页面填充时,该页面的其余数据将被填充刷新。

2 个答案:

答案 0 :(得分:0)

据我了解您的问题和评论,您希望您的用户从下拉框中选择值,并且应该相应地更新具有不同字段的页面。

// PHP code
$choice = $_GET['userchoice'];
// Get Data from Database and update fields in Page


// In javascript, Use this code.
<script type="text/javascript">
    function checkField(val)
    {
        window.location = "yourpage.html?userchoice="val;
    }
</script>

我再次建议您使用会对您的客户产生更好影响的Ajax。

答案 1 :(得分:0)

调用submit函数后,只需在表单中调用checkField方法即可。例如:

<强> HTML

<form action="index.php" target="_self" method="post" id="your-form">
    <select name="UniqueLastNames" onchange="checkField(this.value)">
        ...
    </select>
</form>

<强>的JavaScript

function checkField(val) {
    // do something with your val
    document.getElementById('your-form').submit()
}

请注意我在表单元素中添加了一个ID,因此我可以在JavaScript中轻松选择它。