我的函数生成一个表,其中包含来自mysqli查询的$ data,请求子论坛名称。
function forum_links($data){
//print_r($data);
echo "<div id = 'sub_forums'>
<table>";
foreach($data as $name){
echo "
<tr>
<td id='sub_forum_image'>
<img src='images/favicon_text.ico' alt='MWGA'>
</td>
<td id='sub_forum_td'>
<a href='forum?forum={$name[0]}'>{$name[0]}</a>
</td>
</tr>";
}
echo "</table></div>";
}
单击文本时,我会检查是否设置了varibale论坛,如果设置了我想隐藏div'sub_forums'
<?php
if (isset($_GET['forum'])) {
echo "is set";
?> <script>sub_forum_hide();</script> <?php
}
?>
我得到的错误
未捕获的TypeError:无法读取null的属性'style'。
我认为这与我的文档排序有关,因为我在其他部分使用完全相同的隐藏style.display = "none"
。
function sub_forum_hide(){
document.getElementById("sub_forum").style.display = "none";
}
我已经尝试将sub_forum_hide()移动到文档的底部,但我仍然遇到同样的错误。仅供参考,当我单击文本时,“已设置”回声确实有效。
答案 0 :(得分:1)
从你的代码看起来..你没有任何带ID的元素&#34; sub_forum&#34;这就是为什么它是null。相反,你有一个div = ID =&#34; sub_forums&#34; ...所以你的功能实际应该是
f = open('testapi.html','w')
message = """
<html>
<head>
<title></title>
<link rel="stylesheet" href="Bootstrap/bootstrap-3.3.5-dist/css/bootstrap.css" type="text/css"/>
<script>
</script>
</head>
<body>
<div class="row">
<div class="col-md-2">
</div>
<div class="col-md-3">
<p>Search for best deals</p>
<form name="deals" action="">
<table>
<thead></thead>
<tbody>
<tr> <th>Title </th> <th><input type="text" id="Title" value=""><br></th> </tr>
<tr> <th>Lowest price</th> <th><input type="text" id="LowerPrice" value=""><br></th> </tr>
<tr> <th>Highest price</th> <th><input type="text" id="UpperPrice" value=""><br></th> </tr>
<tr> <th>Sale only</th> <th><input type="checkbox" id="OnSale" value=""></br></th> </tr>
</tbody>
</table>
<p>Sort by:</p>
<input type="radio" name="sort" id="DealRating" value="a">Deal rating<br>
<input type="radio" name="sort" id="Title" value="b">Title<br>
<input type="radio" name="sort" id="Price" value="c">Price<br>
<input type="radio" name="sort" id="Release" value="d">Release<br>
<input type="button" name="Sumbit" value="Submit" onClick="">
</form>
<p> Note: all fields are optional, fill only what you are intrested in.</p>
</div>
<div class="col-md-2">
<p> OR </p>
</div>
<div class="col-md-3">
<p>Search for your favourite games<p>
<form name="games" action="">
<table>
<thead></thead>
<tbody>
<tr><th>Title</th> <th><input type="text" id="GameTitle" value=""></br></th></tr>
</tbody>
</table>
<input type="button" name="Sumbit" value="Submit" onClick="">
</form>
<p> Note: all fields are optional, fill only what you are intrested in.</p>
</div>
<div class="col-md-2">
</div>
</div>
</body>
</html>
"""
f.write(message)
f.close()
可能是您的错字。
下次尝试先了解错误......可以省去很多麻烦并帮助调试。
答案 1 :(得分:1)
看起来您的标题与您的问题不相符。
要解决您实际描述的问题,您需要像其他人指出的那样更正您的div的ID。
如果你想从javascript执行一些php,你需要使用Ajax
答案 2 :(得分:0)
将sub_forums更改为sub_forum。
function forum_links($data){
//print_r($data);
echo "<div id = 'sub_forum'>
<table>";
foreach($data as $name){
echo "
<tr>
<td id='sub_forum_image'>
<img src='images/favicon_text.ico' alt='MWGA'>
</td>
<td id='sub_forum_td'>
<a href='forum?forum={$name[0]}'>{$name[0]}</a>
</td>
</tr>";
}
echo "</table></div>";
}