2014-10-08 183 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方法