使用javascript / jquery在加载页面时提交表单

时间:2012-12-28 17:45:55

标签: php javascript jquery

我写了一个数组来将GET中的变量传递给搜索页面。搜索页面只有4个字段,但我只传递最重要的变量,名字和姓氏。这是数组:

<?php echo "<td><a href='" . matry::base_to('test/trace', array('first'=>$patient->first , 'last' =>$patient->last)) . "'><ul class='controls'>
                    <li id='check_orders'><`span class='symbols'>L</span><span class='label'>Skip Trace</span></li>

                </ul></a></td>";?>

当页面加载时,我只是回显_GET以预先填充该页面上的第一个和最后一个输入字段。

我正在寻找的是一个脚本,它将执行搜索,并在页面自动加载时填充名字和姓氏字段。此外,执行搜索时,它会填充iframe。 (忘了那部分)〜!

我尝试使用:

<script>document.getElementById('stack').submit();</script>

 <form action='http://xxxx.yyyyyyy.com/stuffhere' name='es' target="my_iframe" id="stack">

无济于事。

5 个答案:

答案 0 :(得分:3)

您的<script><form>存在之前正在运行。

<script>移到<form>下方。

答案 1 :(得分:1)

在表单甚至加载到页面上之前,您正在调用提交函数。

将脚本标记放在结束表单标记之后,或者在文档就绪或window onload上调用submit。

<form id-"stack">
  ... form fields...
</form>
<script>document.getElementById('stack').submit();</script>

<script>$(function(){$('#stack').submit();})</script>

答案 2 :(得分:0)

试试这个,一直在重定向页面上使用它。这当然需要低于from,因此它在浏览器处理表单后运行。

<script type="text/javascript">
    function send(o)
    {
        var f = document.getElementById("theForm");
        f.submit();
    }
    send();
</script>

答案 3 :(得分:0)

如果您想在页面加载时提交表单,则应将代码更改为:

<script>window.onload = function(){ document.getElementById('stack').submit(); }</script>

然而,这会重定向用户(就像他们点击了表单提交按钮一样)。为避免这种情况,您需要使用AJAX(我建议使用jQuery来执行此操作)。见下面的例子:

 $(document).ready(function(e) {

    var form_data = $("#form_id").serialize();
    var form_url = $("#form_id").attr("action");
    var form_method = $("#form_id").attr("method").toUpperCase();

    $.ajax({
        url: form_url, 
        type: form_method,      
        data: form_data,     
        cache: false       
    });    

 });

有关使用AJAX的更多信息,请参阅this page

答案 4 :(得分:0)

请想象一下这个简单的例子:

<html>
  <head>
    <script type="text/javascript">
        function body_onload() {
            var form = document.getElementById('theform');
            form.submit();
        }
    </script>
  </head>
  <body onload="body_onload()">
    <form id="theform" action="action.php">
        <input type="hidden" name="query" id="query" value="foo" />
    </form>
  </body>
</html>

它将在页面加载后提交表单。

但你真的在寻找非AJAX解决方案吗?