空格导致我的javascript显示不正确(修剪输出)

时间:2015-08-29 19:00:55

标签: javascript php jquery json

我不知道这是JavaScript,jQuery还是JSON的问题,但是当我在任何数据条目中使用空格时(参见下面的var title1 ),那么空间之后的一切省略。也许数据必须以某种方式编码?我试过用& nbsp;而不是没有运气的实际空间。

为了简单起见,我尝试删除与此问题无关的任何代码。

HTML \的javascript:

 <div id="verification"></div>

 <script>


function update() {
    $.ajax({
    url: 'update.php', //php          
    data: "", 
    dataType: 'json',   
    success: function (data) {
        //on receive of reply
        var title1 = data[2];          

        $('#verification').html("<img src=images/data-image.gif title="+title1+"></img>");     //output to html
        }
    });
}

</script>

json回复

[“这是一个非常长的测试,有123个数字和字母。* .test”]

输出(通过带标题的鼠标悬停文字)

***** PHP ******

$result = mysql_query("SELECT title1 FROM users WHERE username = '$foobar'")
or die(mysql_error());
$array = mysql_fetch_row($result);
echo json_encode($array);

2 个答案:

答案 0 :(得分:6)

您缺少属性定义中的引号,最终的HTML字符串将最终类似于:

<img src=images/data-image.gif title=this is a really long test that has 123 numbers and letters. * . test></img>

这就是title属性中只显示第一个单词的原因。 为了避免转义问题,我建议使用jquery创建元素,例如:

var $img = $('<img>').attr('src', 'images/data-image.gif').attr('title', title1);
$('#verification').append($img);

答案 1 :(得分:2)

您的标题属性最终会没有引号。只要属性不是字母数字字符,就必须引用它。尝试:

$('#verification').html("<img src=images/data-image.gif title='"+title1+"'></img>");