所以,我有一个由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>
";
?>
编辑:甚至提醒();功能不起作用。
答案 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 />";
?>