的index.php
<?php
//grab product id's who need to be showed
$pids = '1,2,3';
?>
<html>
<head>
<?php include 'lol.js.php'; ?>
</head>
<body onload="update_timers();">
<div id="timer_3183" class="timer countdown clearfix" title="1301994024"></div>
lol.js.php
<script type="text/javascript">
function update_timers()
{
check_detail('<?=$pids?>', 'ajax.php');
}
function updatepage(str, pids)
{
//loop through all the products, change time
document.getElementById("timer_3183").innerHTML = document.frm.hide.value;
}
function check_detail(pids, strURL)
{
var xmlHttpReq = false;
var self = this;
// Mozilla/Safari
if (window.XMLHttpRequest) {
self.xmlHttpReq = new XMLHttpRequest();
}
// IE
else if (window.ActiveXObject) {
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
self.xmlHttpReq.open('POST', strURL, true);
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
self.xmlHttpReq.onreadystatechange = function()
{
if (self.xmlHttpReq.readyState == 4)
updatepage(self.xmlHttpReq.responseText, pids);
//document.getElementById("myDiv").innerHTML = self.xmlHttpReq.responseText;
}
self.xmlHttpReq.send("pids=" + pids); //this goes to PHP script via POST
}
</script>
ajax.php
<?php
echo '
<form name="frm">
<input type="hidden" name="hide" value="Some random text">
</form>';
?>
我正在尝试将索引页面中的div设置为ajax.php中的值。
不起作用的行是: document.getElementById(“timer_3183”)。innerHTML = document.frm.hide.value;
如果我用文字字符串替换它,它可以工作: document.getElementById(“timer_3183”)。innerHTML =“rand text”;
但是当我想将它设置为“document.frm.hide.value;”时表达式,页面加载时该值不会更改。
任何想法我做错了什么?
答案 0 :(得分:1)
好吧,我不知道“循环......”的评论意味着什么,但是:
document.getElementById("timer_3183").innerHTML = str;
似乎它会做一些更有趣的事情。您要添加的表单位于XMLHttpRequest响应文本中,对吧?这就是你的“ajax.php”文件返回到浏览器的内容。在请求成功的时候,它仍然只是简单的未解析文本。通过将该文本填充到目标“drop zone”<div>
的“innerHTML”属性中,可以将其提供给浏览器进行解析。完成后,表单将在<div>
内。
答案 1 :(得分:0)
再次使用getElementById
?即分配一些ID,说hide
输入:
<input type="hidden" name="hide" value="Some random text" id="hide">
并编写如下的JS代码:
document.getElementById("timer_3183").innerHTML = document.getElementById('hide').value;