无法使用jquery回显longtext字段

时间:2014-08-20 05:35:04

标签: php jquery echo

我正在运行一个php mysql查询来提取数据,对于部分代码,我试图使用jquery回显一个longtext数据字段,在此显示为$companystory变量:

    $quicksearch = "(SELECT * FROM companies WHERE 
    company='$itemclass')";
    $query = mysql_query($quicksearch) or die(mysql_error())
    while($companydetails=mysql_fetch_array($query)){
    $companystory = $companydetails['company_story'];
    echo "
    <script>
    // Replace paragraph with text from $companystory
    $('.details p').html('Here are details on the company: $companystory');
    </script>
    ";
    echo $companystory;}

第一次回显该值似乎会破坏代码,但是第二次回显它会在页面上显示它,而不是我需要它显示的位置(替换.details段落)。

另外,从以下行中删除$ companystory,如下所示:

$('.details p').html('Here are details on the company:');

替换文字,但显然没有$companystory longtext。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

一些观察

  • 我认为$ companydetails [company_story]应该是$ companydetails ['company_story']
  • $ companydetails是一个数组,但是你将它嵌入“字符串”中,你的意思是$ companystory吗?
  • 在“字符串”中,您需要引用$(。详细信息)的$,如\ $(。details)
  • 您正在生成执行jQuery的JS,以便使用SQL查询的每个结果反复设置相同DOM元素的HTML。你只会得到最后的结果。这不是从风格角度构建HTML的方式,可能无法实现您希望实现的目标,也就是说您应该在PHP中构建HTML而不是构建JS来执行...
  • 你想要实现的是什么,忽略了上面的所有代码。

答案 1 :(得分:0)

我第一次在$ companydetails ['company_story']上使用“mysql_real_escape_string”解决了这个问题。

这是最终的工作代码:

$quicksearch = "(SELECT * FROM companies WHERE 
company='$itemclass')";
$query = mysql_query($quicksearch) or die(mysql_error())
while($companydetails=mysql_fetch_array($query)){
$companystory = mysql_real_escape_string($companydetails['company_story']);
echo "
<script>
// Replace paragraph with text from $companystory
$('.details p').html('Here are details on the company: $companystory');
</script>
";}

这正确地将公司详细信息中的段落替换为另一页上的段落。

耶! : - )

答案 2 :(得分:0)

当您要替换HTML元素的内容并生成将被解析为JavaScript的文本时,您最好使用:

$companystory = htmlspecialchars($companydetails['company_story'], ENT_QUOTES);

这是为HTML设计的,而mysql_real_escape_string()只处理一些字符,例如单个&#39;它实际上是为MySQL查询而设计的,也是折旧的。

所以它变成了:

$quicksearch = "(SELECT * FROM companies WHERE company='$itemclass')";
$query = mysql_query($quicksearch) or die(mysql_error())
while($companydetails=mysql_fetch_array($query)){
    $companystory = htmlspecialchars($companydetails['company_story'], ENT_QUOTES);
    echo "
    <script>
        // Replace paragraph with text from $companystory
        $('.details p').html('Here are details on the company: $companystory');
    </script>
    ";
}