首页 > 解决方案 > 我收到 Uncaught TypeError: Cannot read property 'innerHTML' of null

问题描述

我有一个 PHP 文件 ( admin_leader.php) 包含在另一个 PHP 文件 ( admin_panel.php) 中。它应该显示一个带有按钮的表格,以更改某个房地产的状态。当我单击它们时,我收到此错误Uncaught TypeError: Cannot read property 'innerHTML' of null at SOLD (functions.js:22) at HTMLButtonElement.onclick (admin_panel.php:112)

PHP 文件 / admin_leader.php

$tagname = 0;
echo '<table>';
echo '<tr id="' . $id_generated . '" >';
echo '<th id=idx' . $tagname . ' >' . $idx. '</th>';
echo "<td> <form><button formaction='posty.php?Post_IDy=$id' class='HomeBtn'>$Ftital</button></form></td>";
echo '<td>' . $date. '</td>';
echo '<td>';
if (($STATUS === 'ACTIVE')) {
     echo '<p id="id' . $tagname . '">ACTIVE</p>';
     echo '<button class="btnbtn1" onclick="SOLD(idx' . $tagname . ');">sold</button>';
     echo '<button class="btnbtn2" onclick="RENTED(idx' . $tagname . ');">rented</button>';
     echo '<button  class="btnbtn3" onclick="CANCELLED(idx' . $tagname . ');">cancelled</button>';
     echo '</td>';
     echo '<td>0</td>';
                    
                    }
                    
$tagname = $tagname + 1;
                    
echo '</tr>';
echo '</table>';

我确实将它包含在正文标签中 <?php include('admin_loader.php')?>

然后在最后,我将 javascript 包含在</body>.

admin_panel.php

<script src="../scripties/functions.js"></script>
</body>

函数.js

function SOLD(e) {
    alert("zaza");
    var id = document.getElementById(e).innerHTML;
    alert(id);
    $.ajax({
        type: "POST",
        url: "changer.php",
        data: {status: 'SOLD', idz: id}
    })
    alert("baba");
}

这是问题的图片: 在此处输入图像描述

那么有什么问题,为什么当它被推到正文标签的末尾时,javascript 不会读取文本上下文?

我曾尝试手动读取它document.getElementById("idx0").innerHTML;并且成功了: 在此处输入图像描述 ``

然而该功能仍然不会读取它:/

标签: javascriptphphtml

解决方案


SOLD,RENTED和的参数CANCELED需要用引号引起来,所以它们是字符串文字。

     echo '<button class="btnbtn1" onclick="SOLD(\'id' . $tagname . '\');">sold</button>';

推荐阅读