jQuery .html()帮助

时间:2011-03-25 01:05:19

标签: php jquery ajax json

我正在做以下事情:

<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);
}

1 个答案:

答案 0 :(得分:0)

$("#results_ajax").html("<div>"+ data.disp + "</div>");来电之后,执行alert($("#results_ajax").html());查看实际插入的html。

它可能是您嵌入字符串中的换行符。尝试生成不带换行符的相同字符串,以查看问题所在。