2013-03-03 24 views
2

我正在玩codeigniter和jquery,我试图从mysql获取一些文本并将其插入到<P>标记中。当我只说“hello world”时,该方法起作用,但是当它抓取文本形式的SQL并插入它时,我得到一个未确定的字符串文字错误。这是我的代码:jquery .text()undetermined字符串文字

$('#register').click(function(){ 
    <? 
    $query = $this->db->get_where('eula', array('id'=>'1')); 
    $result = $query->result(); 
    $eula = (string)$result[0]->eula; 
    echo '$(\'#eulaText\').append(\''.$eula.'\'\);'; 
    ?> 
    console.log("$string=".$string); 
}); 

我有一个lorum ipsum字符串在sql中,我想要插入到页面中。

我可以使用一些建议,我为这些草率的代码道歉。

+2

您正在使用您的php区域之外的php代码('')。 'console.log(“$ string =”。$ string);' - >你从来没有设置过'$ string',你必须把它放到你的php区域,并且必须回显这一行。 – Eich 2013-03-03 00:41:48

+0

@da_re该行不会抛出。 '“$ string =”。$ string'将被解析为属性访问,如'“foo”.bar',并且将返回'undefined'。 (在JavaScript中,字符串文字的属性访问返回'undefined'。) – 2013-03-03 00:42:52

+0

是的,这就是为什么我用评论而不是答案:)。 – Eich 2013-03-03 00:44:28

回答

0

我的怀疑是你有一个字符,它终止你的JavaScript字符串,在返回的PHP变量。你传递一个单引号的字符串(当页面加载并且javascript被评估时),并且如果该php变量(eula)包含单引号,它将终止传递给append()方法的字符串,从而导致其余的“eula”被评估为JavaScript代码。

我按照我在这个岗位计算器提供的示例解决此工作:

jQuery prepend php block of code

它可能不是最好的解决办法,但它保证了JavaScript字符串字面传递给追加( )不会包含可能终止它的任何非法字符。

相关问题