javascript - 仅使用 vanilla javascript 从 div 上的外部实时加载文件调用 javascript 函数
问题描述
我有一个文件(load.php),它在我的主页(home.php)内每秒加载一个“div”。load.php 有一些 JavaScript 函数可以获取一行的值(cells[i].innerHTML),但是在 home.php 上加载 load.php 时,这些函数不起作用,但在直接加载 load.php 时可以正常工作或包含在 home.php 中。加载页面和调用 load.php 上的 javascript 函数都是此 Web 应用程序的核心功能,请提供一些帮助,我们将不胜感激。下面是 home.php 和 load.php 的代码
主页.php
<html>
<head>
</head>
<body>
<div id="showReload"></div>
<script type="text/javascript">
window.onload = function(){
let showReload = document.getElementById('showReload');
function reload(div, file){
loadDiv(div, file);
setTimeout(function(){
reload(div, file);
}, 1000);
}
reload('showReload', 'load.php');
}
function loadDiv(div, files){
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else{
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById(div).innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open('GET',files,true);
xmlhttp.send();
}
</script>
</body>
</html>
加载.php
<?php
echo date("Y/M/D,H:i:s");
$host = 'localhost';
$user = 'root';
$pass = '';
$db_name = 'dataBaseName';
$mysqli = new mysqli($host, $user, $pass, $db_name) or die("Connect to database failed");
$fetch = $mysqli->query("SELECT * FROM doctors WHERE status = 1");
if (!$fetch) {
echo "Failed to fetch data from database";
return false;
}
if ($fetch->num_rows > 0) {
while ($row = $fetch->fetch_assoc()) {
$fname = $row['firstname'];
$mname = $row['middlename'];
$lname = $row['lastname'];
$phone = $row['pnumber'];
$id = $row['ID'];
?>
<table id="table">
<tr>
<td class="hide"><?php echo $id; ?></td>
<td><?php echo $fname; ?></td>
<td><?php echo $mname; ?></td>
<td><?php echo $lname; ?></td>
<td><?php echo $phone; ?></td>
</tr>
</table>
<?php
}
}
?>
<script type="text/javascript">
let table = document.getElementById('table'),
rows = document.getElementsByTagName('tr'),
cells = document.getElementsByTagName('td'),
i;
for (i = 0; i < rows.length; i++){
rows[i].onclick = function(){
console.log(this.cells[3].innerHTML);
}
}
</script>
解决方案
推荐阅读
- sas - 如何从表中分配宏变量值并在 SAS 中附加宏输出的数据
- javascript - 在 JavaScript 中解析 JSON 字符串的问题
- database - 创建phoenix表单并提交时出错
- c# - 如何装饰 MediatR 处理程序
- mongodb - 当转储达到 101 条记录时,mongoexport / mongodump 停止
- python - Stripe API - 过滤争议请求
- google-workspace - Admin SDK 的 G Suite 频道停止功能不起作用
- c# - 为什么带有选择过滤器的 PickObjects 会减慢我的选择速度 - PickObjects(ObjectTYpe, ISelectionFilter, String)
- javascript - 如何在 javascript 的函数中调用对象?
- javascript - 如何从 HTML 表格的数据创建列范围图表?