PHP表单不会用javascript提交

php form wont submit with javascript

本文关键字:javascript 提交 表单 PHP      更新时间:2023-09-26

我有一个仪表板页面,为了最简单的解决方案,我把整个页面做成了一个表单(因为有几个下拉列表分散在整个页面上)。我想实现一个功能,可以提交表单每30分钟,无论是JavaScript, jQuery或其他任何东西,但当我尝试它只是拒绝执行代码,所以我试着回到一些基本的东西,如提交表单时,下拉框是通过"OnChange"改变。

下面是一个单独页面的示例片段,其中包含来自我的仪表板页面的一些代码。这本身应该是工作,但我只是看不出为什么它不会执行代码,也许我错过了一些明显的?你能帮我解决这个问题吗:

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
function submit_my_form(myfield)
{
   myfield.form.submit();
}
function submitForm() {
    document.getElementById("branchForm").submit();
}
</script>
</head>
<body>
<?php   
$branch_array = array(
        array(1,"BRANCH 1",1, "http://BRANCH.BRANCH1:1"),
        array(2,"BRANCH 2",1, ""),
        array(3,"BRANCH 3",3, "http://branch3:3"),
        );
?>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="POST" name="branchForm" id="branchForm">
    <select name="query" id="query" class="select" onChange="submit_my_form(this);">
    <?php
    foreach ($branch_array as $x) { // populate select box with branches available from array
        echo '<option value ="'.$x[0].'"';
        if (isset($_POST['query']) && $_POST['query'] == $x[0]) 
        {
            echo ' selected="selected" >'.$x[0].". ".$x[1].'</option>'; 
        } else { 
            echo ' option="'.$x[0].". ".$x[1].'">'.$x[0].". ".$x[1].'</option>'; 
            }
    }
    ?>
    </select>
        <input type="submit" name="submit" value="Refresh" class="btnRefresh" />
        <input type="button" value="go" name="click" onClick="submitForm();" />
    </form>
    <?php echo "<br/>Output: {$_POST['query']}"; ?>
</body>
</html>

当下拉菜单被改变时没有任何反应,当按下"go"按钮时也没有任何反应。

既然你不介意使用jQuery,那就开始吧:

var form = $("#formId");
$("select[name=selectField]").on("change", function(e){
    form.trigger("submit");
});
http://jsfiddle.net/zt8zz1j5/

它所做的就是监听select元素的变化,然后触发表单上的submit事件。当然,您需要更改名称和id以适应您的代码,但我相信您可以处理:),并记住在文档中包含jQuery。

对于按钮也是一样的。您可以监听'click'事件,然后在表单上触发'submit'。