2012-06-30 30 views
-3

我有許多用戶通知代碼,它執行許多mysql工作,所以它需要等待時間。 jquery ajax適用於php文件。 我如何使用jQuery將PHP結果發送到網頁?如何更改php函數將結果發送給jquery ajax

當前代碼:

<? echo db_cache("main_top_naver_cache", 300, "naver_popular('naver_popular', 4)"))?> 

想代碼:但它顯示的錯誤。 php函數的結果不會發送給div elment。 htmlspecialchars是無用的。

<div id='a'> 
<div id='b'> 
<script type="text/javascript"> 
    $("#test1").html(" <? echo htmlspecialchars(db_cache("main_top_naver_cache", 300, "naver_popular('naver_popular', 4)"))?> "); 
</script> 

IE debuger顯示錯誤... SCRIPT 1015:...半拉子蜇不變...

<script type="text/javascript"> 
$("#test1").html(" &lt;style&gt; 
/* http://html.nhncorp.com/uio_factory/ui_pattern/list/3 */ 
.section_ol3{position:relative;border:1px solid #ddd;background:#fff;font-size:12px;font-family:Tahoma, Geneva, sans-serif;line-height:normal;*zoom:1} 
.section_ol3 a{color:#666;text-decoration:none} 
.section_ol3 a:hover, 
.section_ol3 a:active, 
.section_ol3 a:focus{text-decoration:underline} 
.section_ol3 em{font-style:normal} 
.section_ol3 h2{margin:0;padding:10px 0 8px 13px;border-bottom:1px solid #ddd;font-size:12px;color:#333} 
.section_ol3 h2 em{color:#cf3292} 
.section_ol3 ol{margin:13px;padding:0;list-style:none} 
.section_ol3 li{position:relative;margin:0 0 10px 0;*zoom:1} 
.section_ol3 li:after{display:block;clear:both;content:&quot;&quot;} 
.section_ol3 li .ranking{display:inline-block;width:14px;height:11px;margin:0 5px 0 0;border-top:1px solid #fff;border-bottom:1px solid #d1d1d1;background:#d1d1d1;text-align:center;vertical-align:top;font:bold 10px Tahoma;color:#fff} 
.section_ol3 li.best .ranking{border-bottom:1px solid #6e87a5;background:#6e87a5} 
.section_ol3 li.best a{color:#7189a7} 
.section_ol3 li .num{position:absolute;top:0;right:0;font-size:11px;color:#a8a8a8;white-space:nowrap} 
.section_ol3 li.best .num{font-weight:bold;color:#7189a7} 
.section_ol3 .more{position:absolute;top:10px;right:13px;font:11px Dotum, 돋움;text-decoration:none !important} 
.section_ol3 .more span{margin:0 2px 0 0;font-weight:bold;font-size:16px;color:#d76ea9;vertical-align:middle} 
&lt;/style&gt; 

&lt;div class=&quot;section_ol3&quot;&gt; 
    &lt;ol style='text-align:left;'&gt; 
    &lt;li class='best'&gt;&lt;span class='ranking'&gt;1&lt;/span&gt;&lt;a href='http://search.naver.com/search.naver?where=nexearch&amp;query=%B9%AB%C7%D1%B5%B5%C0%FC&amp;sm=top_lve' onfocus='this.blur()' title='무한도전' target=new&gt;무한도전&lt;/a&gt;&lt;span class='num'&gt;+42&lt;/span&gt;&lt;/li&gt;&lt;li class='best'&gt;&lt;span class='ranking'&gt;2&lt;/span&gt;&lt;a href='http://search.naver.com/search.naver?where=nexearch&amp;query=%B1%E8%C0%E7%BF%AC&amp;sm=top_lve' onfocus='this.blur()' title='김재연' target=new&gt;김재연&lt;/a&gt;&lt;span class='num'&gt;+123&lt;/span&gt;&lt;/li&gt;&lt;li class='best'&gt;&lt;span class='ranking'&gt;3&lt;/span&gt;&lt;a href='http://search.naver.com/search.naver?where=nexearch&amp;query=%C0%CC%C7%CF%C0%CC&amp;sm=top_lve' onfocus='this.blur()' title='이하이' target=new&gt;이하이&lt;/a&gt;&lt;span class='num'&gt;+90&lt;/span&gt;&lt;/li&gt;&lt;li &gt;&lt;span class='ranking'&gt;4&lt;/span&gt;&lt;a href='http://search.naver.com/search.naver?where=nexearch&amp;query=%BA%D2%C8%C4%C0%C7%B8%ED%B0%EE2&amp;sm=top_lve' onfocus='this.blur()' title='불후의명곡2' target=new&gt;불후의명곡2&lt;/a&gt;&lt;span class='num'&gt;+87&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; 

</DIV >「

); </script> 

回答

1

正確的代碼
<? 
// http://huddak.net/bbs/board.php?bo_table=cm_free&wr_id=3629 
function remove_nr($str) { 
    $reg_e = array('/\n/', '/\r/', '/\"/', "/<\/script>/i"); 
    $reg_p = array(' ', ' ', '\\"', "<\/SCRIPT>"); 

    return preg_replace($reg_e, $reg_p, $str); 
} 
?> 

<script type="text/javascript"> 
$("#test1").html(" <? echo remove_nr(trim(db_cache("main_top_naver_cache", 300, "naver_popular('naver_popular', 4)")))?> "); 
</script> 

你可以花費php代碼來加載jquery。 這使得你的網頁加載到夢幻般的。

2

而不是直接使用的回聲您可以使用json_encode()對數據進行編碼,然後使用echo將其發送到jquery,這可能會解決您的問題。

+0

我使用echo來顯示數據到網頁而不是將數據發送到其他程序。 json_encode是一個很好的功能,但不適合我。 – OpenCode