2013-03-03 2 views
2

Я играю с codeigniter и jquery, и я пытался взять некоторый текст из mysql и вставить его в тег <P>. Метод работает, когда я просто говорю «привет мир», но когда он захватывает текстовую форму SQL и вставляет ее, я получаю неопределенную строчную литералную ошибку. Это мой код:jquery .text() undetermined string literal

$('#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

+0

@da_re Эта линия не будет бросать. '' $ string = ". $ string' будет анализироваться как доступ к ресурсу, например' 'foo" .bar', и будет возвращать 'undefined'. (В JavaScript доступ к свойствам в строковых литералах возвращает 'undefined'.) –

+0

Да, именно поэтому я использовал комментарий вместо ответа :). – Eich

ответ

0

Мои подозрения - у вас есть символ, который завершает вашу строку javascript в возвращаемой переменной php. Вы передаете строку с одним кавычком (когда страница загружается и вычисляется javascript), и если эта переменная php (eula) содержит одиночную кавычку, она завершит строку, которая передается методу append(), вызывая остальная часть «eula» должна оцениваться как код JavaScript.

Я работал вокруг этого, следуя пример I, представленный в этом StackOverflow посте:

jQuery prepend php block of code

Это не может быть лучшим решением, но оно обеспечивает яваскрипт строкового литерала, который передается для добавления () не будет содержать никаких незаконных символов, которые могли бы его прекратить.