[问题因某种原因已经解决。]
我已经有这段代码了很长一段时间没有任何问题。今天我开始上班并得到一个未被捕获的语法错误,告诉我有一个流浪的“<”。我找到了它,它是一段javascript代码,可以获取您正在查看的帖子的ID值(在论坛上)。
该代码用于使用AJAX删除帖子。
$('.deletePost').click(function() {
var delPost = confirm('Are you sure you want to delete this post?');
if (delPost == true) {
var xhttp = new XMLHttpRequest();
var getId = <?php echo $_GET['id'] ?>
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
location.replace('index');
}
}
xhttp.open('GET', 'deletepost.php?id=' + getId, true);
xhttp.send();
}
return false;
});
加载实际网站时,getId
变量为<br >
此代码位于'footer.php'文件中,我使用include
在网站的每个页面上获取它。
首先我使用jQuery点击执行此操作,因此语法错误在其他页面上不应该是一个问题,因为我确保不对任何其他文件上的任何内容使用.deletePost
类。其次,它还需要用户单击OK并使变量为true,所以对我来说这没有任何意义。
最大的问题是,它使所有其他javascript代码无论在上面还是下面都没用。
(我不确定是否有更多的代码是相关的,我不想让它太长,所以如果我需要包含其他内容,请告诉我。)
$_GET['id']
中的ID生成如下:
`
$sql = '
SELECT c.cat_name, c.cat_id, c.cat_description, t.topic_id, t.topic_by, t.topic_subject, t.topic_date
FROM categories c LEFT JOIN topics t ON c.cat_id=t.topic_cat
WHERE topic_date = ( SELECT MAX(t2.topic_date) FROM topics t2 WHERE t2.topic_cat = t.topic_cat ) AND c.cat_id<4
ORDER BY t.topic_date DESC
';
$result = mysqli_query($conn, $sql);
if (!$result) {
echo 'Could not display categories. Error: ';// . mysqli_error($conn);
} else {
if (mysqli_num_rows($result) == 0) {
echo 'No categories found in the database.';
} else {
echo '
<table>
<h3>Latest topics in categories</h3>
<tr>
<th>Category</th>
<th>Latest Topic</th>
</tr>
';
while ($row = mysqli_fetch_assoc($result)) {
echo '<tr>
<td class="leftpart">
<h3><a href="category?id=' . $row['cat_id'] . '">' . $row['cat_name'] . '</a></h3>' . $row['cat_description'] . '
</td>
<td class="rightpart">
<a href="topic?id=' . $row['topic_id'] . '">' . $row['topic_subject'] . '<br>By <b>' . $row['topic_by'] . '</b></a>
</td>
</tr>
';
}
echo '</table>';
}
}`
答案 0 :(得分:2)
你必须在php语句周围使用引号 像这样。并确保在服务器端将类型值转换为整数
var getId = "<?php echo $_GET['id']; ?>";
首先确保GET参数正确获取id值,检查浏览器中的inspect元素,如果你的Id从数据库正确填充,它应该是这样的(我不知道你的ID和值)< / p>
<h3><a href="topic?id=1">correct cat name</a></h3>correct cat_description
GET参数需要一个键&#34; id&#34;获得它的价值。错误说&#34; id&#34; URL不作为GET参数。
检查URL地址,它还应包含&#34; id&#34;参数
如果你的数据库中的id是某种字符串。将字符串括在urlencode($row['cat_id'])
函数中。
除此之外,我没有看到任何错误。如果我误解了这个问题,请原谅我