如何在页面加载时触发Javascript函数?
所以,我有一个由2个文本输入栏和一个DIV组成的页面。如何在页面加载时触发Javascript函数?
第一个输入文本字段是用户输入数据的位置,第二个输入文本字段是只读的。在第一个输入文本字段中按Enter键后,将根据在数据库中查询的内容在DIV中加载单独的页面。
问题是我需要传递一个值到第二个输入字段,它是只读来自同一个数据查询。请帮我...
示例代码:我做了一个单独的应用程序,因为这基本上是应该发生在我的应用程序。
的index.php:
<!DOCTYPE html>
<html>
<head>
<script>
function loadNow(p,d){
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(d).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET",p,true);
xmlhttp.send();
}
</script>
</head>
<body>
<input type="text" id="input1" name="input1" placeholder="Input Here"
onkeyup="if ((event.which == 13) || (event.keyCode == 13)) {
loadNow('testnewpage1.php?r='+this.value,'loadHere1'); }" />
<input type="text" id="input2" name="input2" readonly />
<div id="loadHere1">
</div>
</body>
</html>
testnewpage1.php
<?php
require('conn.php');
$r=$_GET['r'];
$query = mssql_query("select somefield from sometable where reference='$r'");
$data = mssql_fetch_array($query);
echo "
<script>
input2.value='$data[somefield]';
</script>
";
?>
编辑:即使警报();功能不起作用。
所以,我决定用一个<span>
的输出文本字段,并再次在新页面中重新显示出来。
这里是最后的代码,如果有人有兴趣:
的index.php
<!DOCTYPE html>
<html>
<head>
<script>
function loadNow(p,d){
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(d).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET",p,true);
xmlhttp.send();
}
</script>
</head>
<body>
<input type="text" id="input1" name="input1" placeholder="Input Here"
onkeyup="if ((event.which == 13) || (event.keyCode == 13)) {
loadNow('testnewpage1.php?r='+this.value,'spaninput'); }" />
<span id="spaninput">
<input type="text" id="input2" name="input2" readonly />
</span>
<div id="loadHere1">
</div>
</body>
</html>
testnewpage1.php
<?php
require('conn.php');
$r=$_GET['r'];
$query = mssql_query("select somefield from sometable where reference='$r'");
$data = mssql_fetch_array($query);
echo "<input type='text' id='input2' name='input2' value='$data[somefield]' readonly />";
?>
这将是一个快速和肮脏的解决方案: -
<?php
require('conn.php');
$r=$_GET['r'];
$query = mssql_query("select somefield from sometable where reference='$r'");
$data = mssql_fetch_array($query);
echo "
<script>
document.input2.value='$data[somefield]';
</script>
";
?>
t这将是更优选: -
index.php文件的javascript: -
<script>
function loadNow(p,d){
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(input2).value=xmlhttp.responseText;
}
}
xmlhttp.open("GET",p,true);
xmlhttp.send();
}
</script>
testnewpage1.php: -
<?php
require('conn.php');
$r=$_GET['r'];
$query = mssql_query("select somefield from sometable where reference='$r'");
$data = mssql_fetch_array($query);
echo $data[somefield];
?>
我尝试了第一个建议,它不工作,甚至alert();不管用。第二个建议不适用,因为表单已经是格式了。它不能改变。 – user3462418 2014-10-08 07:57:39
对于加载页面时的JavaScript,您可以使用document.ready函数并将代码放在那里,当DOM准备就绪时可以调用document.ready,这可以在图像和其他外部内容被加载之前调用。
$(document).ready(function() {
/* code here */
});
编辑 对于报警功能不能正常工作,你需要在你的代码的jQuery脚本。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
仍然无法正常工作。你能给我样品吗?使用document.ready函数?我试图把我的代码放在那里,它不工作。 – user3462418 2014-10-08 08:23:02
你有没有尝试把jquery放到脚本中?文档准备就绪通常在页面加载时运行脚本,没有问题 – blackhawk338 2014-10-08 08:24:28
我已将它放入脚本标记中,位于我的
数据是否被加载到只读文本框中您希望查询产生的相同数据?或者查询输出是否有比所需更多的数据? – 2014-10-08 08:47:47
是的,它实际上是相同的查询,但查询将输出1行或更多行,所以我只需要从行中显示相同的值。那么,我想如何让它按照我的喜好工作,无论如何,谢谢! – user3462418 2014-10-08 09:06:06