我写了一个数组来将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">
无济于事。
答案 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解决方案吗?