我正在做以下事情:
<script type="text/javascript">
$(function(){
$("#ipad").submit(function() {
$.post("ipadcheck.php", $("#ipad").serialize(),
function(data)
{
if(data.error == 'TRUE')
{
$("#results_ajax").html("<div class='AppleRed'>Sorry There were Errors: " + data.error_message + "</div>");
}
else
{
$("#results_ajax").html("<div>"+ data.disp + "</div");
}
}, "json");
return false;
});
});
当用户将数据输入表单并提交表单时,提交。我知道data.error == 'TRUE'
会被点击,因为当我故意导致错误时,我会收到错误消息。
我知道我正在为data.disp
建立结果:
<div class='paragraph_style'><br />
<strong> San Jose College Park</strong>
<br/>2.33 miles<br />Out Of Stock
<strong> San Jose Westgate</strong>
<br/>3.35 miles<br />Out Of Stock
</div>
使用Firebug我看到它回来了,它看起来不错
但它没有显示出来。
我一直把头发拉了3个小时!
更新:我的字符串肯定是一个问题,一个编码问题。我用工作“Hello”替换了我的字符串并且它有效。为什么我不早点想到这么简单的测试...
更新2:我使用的是:
$m=array();
preg_match_all('/<p>[\s\S]*?<strong>([\s\S]*?)<\/p>/i',$buffer,$m);
foreach($m[1] as $mnum=>$match)
{
$displayString .="<br /><strong>";
$displayString .= $match;
$displayString .="<br />";
}
这一行$displayString .= $match;
也许我不知道如何输出$m[1]
的值?这里发生的是$buffer
卷曲输出,我找到
的所有实例,它们进入$ m。有什么建议?
编辑:我尝试将jquery .html()
包裹在try/catch
中,没有任何反应,我从未点过它或得到警报。
try
{
$("#results_ajax").html("<div>"+ data.disp + "</div>");
alert($("#results_ajax").html());
}
catch(err)
{
txt="There was an error on this page.\n\n";
txt+="Error description: " + err.description + "\n\n";
txt+="Click OK to continue.\n\n";
alert(txt);
}
答案 0 :(得分:0)
在$("#results_ajax").html("<div>"+ data.disp + "</div>");
来电之后,执行alert($("#results_ajax").html());
查看实际插入的html。
它可能是您嵌入字符串中的换行符。尝试生成不带换行符的相同字符串,以查看问题所在。