【问题标题】:How to escape HTML elements when fetching an array in PHP using Javascript?使用Javascript在PHP中获取数组时如何转义HTML元素?
【发布时间】:2012-12-14 18:42:46
【问题描述】:

我认为问题出在“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);
        });
    }
});

【问题讨论】:

  • 你想做什么?要解决的任务是什么?我不明白。

标签: html jquery pdo


【解决方案1】:

如果你想对这样的一行进行 html 编码:

this is <br /> a test

变成这样的一行:

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

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

【讨论】:

  • 我尝试了这个并将&amp;lt; 替换为&amp;lt;&amp;gt; 替换为&amp;gt;,但我仍然遇到解析错误。我现在不知道如何将您链接到的漂亮函数合并到我上面的 javascript 中。你能告诉我怎么做吗?这是我用“硬编码”括号&amp;lt;&amp;gt;&lt;br /&gt; &lt;b&gt;Parse error&lt;/b&gt;: syntax error, unexpected '&amp;'得到的错误。非常感谢。
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-20
    • 2022-11-10
    • 2022-11-01
    • 2012-08-09
    • 2021-11-12
    • 1970-01-01
    • 2014-04-01
    • 2010-12-18
    相关资源
    最近更新 更多