我收到未捕获的类型错误:无法读取 null 的属性“innerHTML”

时间:2021-07-31 07:06:15

标签: javascript php html

我有一个 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')?>

然后在最后,我在 </body> 的结束标记上方包含了 javascript。

admin_panel.php

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

functions.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");
}

这是问题的图像: enter image description here

那么出了什么问题,为什么当 javascript 一直推送到 body 标记的末尾时,它不会读取文本上下文?

我曾尝试使用 document.getElementById("idx0").innerHTML; 手动读取它并且成功了: enter image description here ``

然而该函数仍然不会读取它:/

1 个答案:

答案 0 :(得分:1)

SOLDRENTEDCANCELED 的参数需要用引号引起来,因此它们是字符串文字。

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