2011-05-26 49 views
0

下面的代码使用AJAX返回到对象的html页面。在字符串中存在行['value']时,正确的方式来在PHP中转义字符串?

它似乎并没有这样做的时候,我没有呼应它作为PHP,这是排序的div,因为它们是基于属性“数据排序”

我知道创建它做什么该函数是正确的,我可能会错误地转义它?

echo " 

     newdiv = $(\'<div id=\'eventdiv\' class=\'shadow curved_sml gradient\' data-sort=\'".$row_display['TimeStamp']."\'>".$row_new['Title']." TIME: ".$row_display['TimeStamp']."</div>\'); 

     div_id_after = Math.floor(parseFloat(newdiv.attr('data-sort'))); 

     $('div[data-sort='+div_id_after+']').after(newdiv); 

     "; 

问候, 泰勒

回答

1

是的,你是错误地逃避它。你有什么是:

  • 行情的第一级:双层的,在PHP中,
  • 行情的第二个层次:单一的,在JavaScript中,

,但你必须在第三个不正确的报价level - 在JS中以字符串形式传递的HTML,而在JS中以字符串形式传递。你也不应该逃脱'的,因为你把它们放在"的附近。

尝试以下操作:

echo " 
    newdiv = $('<div id=\"eventdiv\" class=\"shadow curved_sml gradient\" data-sort=\"" . $row_display['TimeStamp'] . "\">" . $row_new['Title'] . " TIME: " . $row_display['TimeStamp'] . "</div>'); 

    div_id_after = Math.floor(parseFloat(newdiv.attr('data-sort'))); 

    $('div[data-sort=\"'+div_id_after+'\"]').after(newdiv); 
"; 

我想这应该解决您的问题。但我没有测试它。

+0

太好了。谢谢你解释它。解决了我的问题 – TaylorMac 2011-05-26 01:33:16

+0

@TaylorMac没问题。我很高兴它帮助你。 – Tadeck 2011-05-26 01:33:52

0

是的,你是 - 在一个双引号字符串,你不要逃避单引号。删除所有这些\' s并用'替换它们。