2013-04-17 76 views
0

我有一個textarea的內容被推入到一個MySQL數據庫與Ajax/jQuery $ .post。然後用php調用mysql數據,然後用javascript將其推入新的動態textarea。jquery ajax到MySQL到PHP到JavaScript轉換

我將它轉換爲數據庫之前,將所有html都用htmlentities()轉換。

然後我運行一個mysql_query來拖出數據。在這一點上,如果我回應的數據回聲很好。

當我然後將它推入一個js函數來創建新的textarea並添加數據這是我得到錯誤的地方。如果我試圖提醒我用mysql_query得到的數據,我什麼也得不到。

我只是用一些Lorem Ipsum文本來測試。我已經運行螢火,我得到的錯誤是

[17:44:20.948] SyntaxError: unterminated string literal @ http://**************.com/********.php:427 

我不會發布的所有代碼,除非有人需要它有很多,說實話,我認爲它的某種逃避/ HTML編碼類型的問題。

那裏是獲取上述錯誤按CTRL「U」

<script>NewTextArea('1','draggable','176','672','300','300','&lt;strong&gt;Lorem Ipsum&lt;/strong&gt; es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido el texto de relleno est&Atilde;&iexcl;ndar de las industrias desde el a&Atilde;&plusmn;o 1500, cuando un impresor (N. del 
T. persona que se dedica a la imprenta) desconocido us&Atilde;&sup3; una galer&Atilde;&shy;a de textos y los mezcl&Atilde;&sup3; de tal manera que logr&Atilde;&sup3; hacer un libro de textos especimen. No s&Atilde;&sup3;lo sobrevivi&Atilde;&sup3; 500 a&Atilde;&plusmn;os, sino que tambien ingres&Atilde;&sup3; como texto de relleno en documentos electr&Atilde;&sup3;nicos, quedando esencialmente igual al original. Fue popularizado en los 60s con la creaci&Atilde;&sup3;n de las hojas &quot;Letraset&quot;, las cuales contenian pasajes de Lorem Ipsum, y m&Atilde;&iexcl;s recientemente con software de autoedici&Atilde;&sup3;n, como por ejemplo Aldus PageMaker, el cual incluye versiones de Lorem Ipsum.');</script> 
+1

請發佈**相關**代碼。 – moonwave99

+2

_I在將它推入db_之前,將所有的html都轉換爲htmlentities(),這是錯誤的做法。當您輸出HTML時,您應該使用「htmlentities」。在您的數據庫中使用HTML意味着您的數據被_poluted_與HTML特定的編碼。由於你輸出到JavaScript,你應該使用'json_encode'(而不是'htmlentities') – Halcyon

+0

@jeroen SyntaxError在JavaScript中,看看文件指示符,它是'http'。 – Halcyon

回答

3

當你注入PHP變量到JavaScript最後一個js函數,這是最安全的包起來,以json_encode()通話。 Javascript有隱含的行結尾,這意味着字符串中的換行符需要被轉義。如果你使用換行符作爲JavaScript塊的一部分回顯一個php字符串,它會破壞腳本。

+0

謝謝我只注意到,添加到數據庫的換行符,我用str_replace將'\ n'轉換爲'
',它現在可以工作。另一個問題爲什麼json_encode將引號添加到存儲的文本中? –

+0

@BarryWatts - json_encode本質上將把任何東西變成它對應的javascript文字。這意味着字符串被引用並逃脫。 –