2014-10-08 133 views
0

所以,我有一个由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> 
    "; 
?> 

编辑:即使警报();功能不起作用。

+0

数据是否被加载到只读文本框中您希望查询产生的相同数据?或者查询输出是否有比所需更多的数据? – 2014-10-08 08:47:47

+0

是的,它实际上是相同的查询,但查询将输出1行或更多行,所以我只需要从行中显示相同的值。那么,我想如何让它按照我的喜好工作,无论如何,谢谢! – user3462418 2014-10-08 09:06:06

回答

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

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

我尝试了第一个建议,它不工作,甚至alert();不管用。第二个建议不适用,因为表单已经是格式了。它不能改变。 – user3462418 2014-10-08 07:57:39

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> 
+0

仍然无法正常工作。你能给我样品吗?使用document.ready函数?我试图把我的代码放在那里,它不工作。 – user3462418 2014-10-08 08:23:02

+0

你有没有尝试把jquery放到脚本中?文档准备就绪通常在页面加载时运行脚本,没有问题 – blackhawk338 2014-10-08 08:24:28

+0

我已将它放入脚本标记中,位于我的

  • 11. addEventListnener(click)在页面加载时触发
  • 12. jQuery - .toggle()在页面加载时触发
  • 13. Javascript事件触发页面加载
  • 14. 当页面加载和点击链接时触发jQuery函数?
  • 15. 如何在AMX页面加载时调用JavaScript函数?
  • 16. 如何在加载任意页面时运行javascript函数
  • 17. 如何在页面加载时调用JavaScript函数?
  • 18. 如何触发点击页面加载?
  • 19. 在页面加载时加载javascript函数
  • 20. 在页面加载时触发Javascript文本和图片预览
  • 21. 可能在页面重新加载时触发JavaScript功能?
  • 22. Javascript“addEventListener”事件在页面加载时触发
  • 23. 页面加载触发div
  • 24. 页面加载时未触发更改
  • 25. 加载页面时触发onclick
  • 26. 如何在页面加载时加载这个ajax函数?
  • 27. 如何在加载页面时触发Ext.History.on('change',...)?
  • 28. 如何强制NetworkAvailabilityChanged事件在页面加载时触发
  • 29. 如何在asp.net初始页面加载时触发UpdateProgress
  • 30. 如何在页面加载时触发servlet方法