0

我的数据库中的字段中有以下文本:

相应地研究项目要求和记录的规范
为 PDMS 管道和相关设备开发路由模型
为管道路线和结构的粗略和最终布局设计了 3D 插图
为复杂的管道结构创建高架支撑系统,以确保正常运行和安全
提供详细的制作图纸
对新的和现有的设计进行压力和功能测试
根据设计和安全标准升级现有布局和结构
准备好地块平面图和设备布置
开发等轴测图、总体布置图和支撑详图

我通过变量(即$text)将其从数据库中取出,然后通过 javascript 函数对其进行解析function(text),以便将文本发布到表单 textarea 字段中进行编辑。

但是当我单击按钮运行该功能时,它什么也没做。如果文本较小,则可以正常工作。javascript 变量的字符是否有任何限制?

PHP代码:

<?
$var = mysql_fetch_row($query);
$text=$var['cool'];

echo "<a onclick=\"func($text)\">button</a>";
?>

<script>
function func(text) {   
        $('<div>cool: '+text+'</div>').fadeIn('slow').appendTo('.somediv');
}
</script>
4

2 回答 2

4

您需要对参数进行编码:

$text = htmlspecialchars(json_encode($var['cool']));

也就是说,从长远来看,其他解决方案可能会更好,因为元素已经在页面中的正确位置。这取决于你想用它做什么。

编辑:转义可能并不完美。请对其进行广泛测试。

于 2012-08-25T21:31:31.703 回答
1

我会这样做:(因为 javascript 中的文本限制)

<?php
    $var = mysql_fetch_row($query);
    $text=$var['cool'];

    echo "<div id=\"hiddendiv\" style=\"display:none\">".$text."</div><a onclick=\"func()\">button</a>";
?>

<script type="text/javascript">
function func(text) {   
    $('#hiddendiv').fadeIn('slow').appendTo('.somediv');
}
</script>
于 2012-08-25T21:30:32.717 回答