我在这里疯狂地想弄清楚为什么这个剧本不再按预期执行(昨天工作得很好,但是我做了一些小改动而没有支持它......现在我可以找出问题所在。)
<form method="POST" name="inventory_check" id="inventory_check">
<input type="text" name="stock_part" id="part_input">
<input type="hidden" name="site" value="2">
<input type="submit" value="Check Stock" id="submit">
</form>
<?php
if(isset($_POST['stock_part'])) {
$part = strtoupper($_GET['stock_part']);
$site = $_POST['site'];
$filename = 'system/inventory/'.$part.'.txt';
if(file_exists($filename)) {
$handle = fopen($filename, 'r');
$content = fread($handle, filesize($filename));
$content = trim($content, '&l0O(10U');
$content = trim($content, 'E');
fclose($handle);
date_default_timezone_set('UTC');
$mod_date = (filemtime($filename));
$current_date = time();
$subtract_date = ($current_date - $mod_date);
$subtract_date = ($subtract_date/3600);
if ($subtract_date <= 12) {
$stock = number_format($content);
echo '<script>document.inventory_check.style.display="visible";</script>';
echo '<div id="stock_results">There are '.$stock.' '.$part.' in stock.</div>';
}
else {
echo 'File too old.';
}
}
else {
echo '<iframe src="http://example.com/inventory_check.php?part='.$part.'&site='.$site.'" height="50" width="150"></iframe>';
echo '<script>document.inventory_check.style.display="none";</script>';
echo '<div align="center"><img src="http://www.aifittingsproto.com/images/load.gif"><br /><br />Searching</div>';
echo '<script>setTimeOut("recheck()", 2000);</script>';
}
}
?>
<script>
function recheck() {
document.inventory_check.stock_part.value="<?php echo $part ?>";
document.inventory_check.site.value="<?php echo $site ?>";
document.inventory_check.submit();
}
</script>
基本上,这会检查我们内部服务器上的某个项目的库存(与Web服务器不同的域)。我想要完成的是部件号中的用户键...首先它检查我们的服务器上是否存在ftp-ed文件..如果它检查它检查的时间是否比12小时更新,然后如果是的话显示它。如果没有,它会打开一个iframe并将变量发送到我们的内部服务器进行处理,这些都按预期工作。我的问题是,我需要能够在变量通过iframe传递之后重新检查文件是否存在。我尝试通过重新发送变量并每2秒提交一次表单来设置它。查看源代码,所有变量都按预期填充,等等,但它没有循环并重新提交表单。任何建议为什么失败,或更好的方法?提前谢谢。
答案 0 :(得分:0)
您应该尝试将setTimeout("window.reload()", 2000)
替换为setTimeout("window.reload", 2000)
。我的理解是你需要传递没有括号的函数来超时。