1

我认为问题出在“aif.php”文件中”

我正在尝试使用 PHP 获取并显示一个数组,但 HTML 元素<br>显示在我的以下脚本的结果中。我知道我必须转义 HTML 标签,但我只是不确定如何!此外,将不胜感激有关此代码的任何其他建议(即是否有任何冗余或需要改进的地方?谢谢。

HTML

<DOCTYPE! html>
<html>
    <head>
        <title>The Auditors' Report: Data Entry</title>
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
        <header><h1>Work Station<h1></header>
        <div = id="leftnav">
        <h2>Select Action</h2>
        Name: <input type="text" id="name">
        <input type="submit" id="grab" Value="Grab">
        </div>
        <div id="content"></div>
        <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
        <script src="aif.js"></script>
        </body>
</html>

PHP - 配置(文件名:“config.php”)

<?php
$dbhost = "localhost";
$dbname = "x";
$dbuser = "y";
$dbpass = "z";
$dsn = "mysql:host=$dbhost;dbname=$dbname";
$dbh = NULL
?>

PHP - 查询/结果内容(文件名:“aif.php”)

<?php
require "config.php";
$dbh = new PDO($dsn, $dbuser, $dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$sql = "SELECT * FROM table1 LIMIT 0,10";
$sth = $dbh->prepare($sql);
$sth->execute();
while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
    echo $row['field1'],"<br>";
    echo $row['field2'],"<br>";
    echo $row['field3'],"<br>";
}
?>

Javascript

$('input#grab').on('click', function() {
    var name = $('input#name').val();
    if ($.trim(name) !='') {
        $.post('aif.php', {name: name}, function(data) {
            $('div#content').text(data);
        });
    }
});
4

2 回答 2

0

我在 Javascript 中犯了一个简单的错误。我想传回HTML而不是TEXT

通过以下更改,PHP 可以正确呈现:

$('div#content').text(data);

$('div#content').html(data);
于 2012-12-30T02:35:46.610 回答
0

如果要对这样的行进行 html 编码:

this is <br /> a test

变成这样的一行:

this is &lt;br /&gt; a test

使用此处描述的漂亮小功能: HTML-encoding lost when attribute read from input field

于 2012-12-30T01:55:36.630 回答