我不知道这是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);
答案 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>");