2013-03-03 57 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字符串字面傳遞給追加( )不會包含可能終止它的任何非法字符。

相關問題