1. 程式人生 > >jquery ajax 獲取後臺資料表字段儲存的html程式碼

jquery ajax 獲取後臺資料表字段儲存的html程式碼

最近在做一個小東西,需要在前臺把使用者填寫的表單(連同html程式碼)放送到後臺資料庫中的某欄位儲存,方便直接把資料取出來並顯示該表單。

開始的時候,表單資料提交正常,但是經過ajax獲取後返回的資料卻無法被解析。開始還以為是html程式碼儲存到資料庫之後那些個類似這樣的符號‘<’,'>'變成了另外前臺沒法識別或者解析執行的符號。網上也有人說在ajax返回資料後要把這些個符號轉化前臺可解析執行的一般符號。但是事實卻不是如此。我後來做了個測試,把下面的程式碼:

<tableid="table" border="2">

        <tr id="a"border="3">

               <th> 工號 </th><th> 姓名 </th><script>document.write(showDL());</script><th>備註</th>

        </tr>

        <tr> 

               <td>  123</td> <tdclass="name"> 11111 </td><script>document.write(STR);</script><td> 334 </td>

        </tr>

</table>

按照上面的流程,把這段程式碼作為表單項的值儲存到後臺資料庫某欄位中,再通過ajax獲取到這個資料欄位的值,結果是無法解析。後來我做了一下處理,把裡面的換行符去掉,變成這樣

<tableid="table" border="2"><tr id="a"border="3"><th> 工號 </th><th> 姓名</th><script> document.write(showDL());</script><th>備註</th></tr><tr> <td>  123</td> <tdclass="name"> 11111 </td><script>document.write(STR);</script><td> 334</td></tr></table>

一切就正常了,資料可以被解析。

上面的現象是程式碼直接作為字串列印在螢幕上。然而我想要的是返回後被解析的程式碼段可以被執行並顯示出來。網上也有人說把返回的程式碼段直接賦給變數b,然後通過$('#table').html(b);來實現。經過測試也不行。最終我使用了這樣的方法,先把程式碼列印到螢幕上,再通過jquery獲得這段程式碼,再通過html()方法執行這段程式碼。大概是這樣:

$('#table').html($('#table').text());

最終達到了我想要的效果。個人的一點小總結,如果大家發現有什麼錯誤,可直接回復,或者私聊我。晚安。