如何在页面加载中触发Javascript函数?

时间:2014-10-08 07:42:01

标签: javascript php html

所以,我有一个由2个文本输入字段和一个DIV组成的页面。

第一个输入文本字段是用户输入数据的位置,第二个输入文本字段是只读的。在第一个输入文本字段中按Enter键后,将根据在数据库中查询的输入内容在DIV内部加载单独的页面。

问题是我需要将值传递给第二个输入字段,该字段也是来自查询的相同数据的readonly。请帮帮我......

示例代码:我创建了一个单独的应用程序,因为这基本上应该在我的应用程序中发生。

的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>
    ";
?>

编辑:甚至提醒();功能不起作用。

3 个答案:

答案 0 :(得分:0)

这将是一个快速而肮脏的解决方案: -

<?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>
    ";
?>

这将是更优选的: -

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];
?>

答案 1 :(得分:0)

对于页面加载时的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>

答案 2 :(得分:0)

所以,我决定对输出的文本字段使用<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 />";
?>