我正在运行一个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。
有什么想法吗?
答案 0 :(得分:0)
一些观察
答案 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>
";
}