PHP echo echo值显示<br/>标签

时间:2017-06-02 07:18:21

标签: php jquery ajax

[问题因某种原因已经解决。]

我已经有这段代码了很长一段时间没有任何问题。今天我开始上班并得到一个未被捕获的语法错误,告诉我有一个流浪的“&lt;”。我找到了它,它是一段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>';
        }
    }`

这是错误。它出现在F12中。 Error (Displays in F12)

1 个答案:

答案 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'])函数中。

除此之外,我没有看到任何错误。如果我误解了这个问题,请原谅我