2011-06-21 49 views
1

我正在寫一些php代碼,從tpl文件創建頁面,它工作得很好。但是,我決定使用jqueryui引擎包含一些時髦的jQuery的東西,我不能讓它工作。在header.tpl中,我有以下內容PHP搞砸<script>在.tpl標題

<script src="...."></script> 
<script> 
$(function() { 
// a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore! 
$("#dialog:ui-dialog").dialog("destroy"); 
$("#dialog-message").dialog({ autoOpen: false }) 
$("#dialog-message").dialog({ 
     modal: true, 
     buttons: { 
      Ok: function() { 
     $(this ).dialog("close"); 
     } 
    } 
});  
$("#tac").click(function() { 
    $("#dialog-message").dialog('open'); 
    // prevent the default action, e.g., following a link 
    return false; 
}); 
}); 
</script> 

當我在純HTML頁面中測試時,此代碼會產生所需的效果。但是,當頁面由php代碼生成時,它不會。此外,當我瀏覽這個PHP生成的頁面源,這是我得到的頭

<script> 
$(function()) 

    $("#dialog-message").dialog(
     } 
    }); 

    $("#tac").click(function()); 

}); 
</script> 

PHP似乎摧毀大部分代碼,我不明白爲什麼會發生。任何幫助將不勝感激!

+1

和怎麼樣的PHP代碼? –

+0

夥計們,非常感謝您的幫助!你的評論引導我朝着正確的方向前進,並且找到了答案。罪魁禍首是我在模板引擎中的「preg_match」聲明,我把它放在正確的位置。現在一切正常。再次感謝! – Alex

+0

只注意到preg_replace停止在tpl元素上工作,我將其定義爲{element}。 preg_replace是 $ this-> content = preg_replace('#{nbd _(。+?)}#si','',$ this-> content); 任何想法,我應該說明它,以便它能識別{template_bit}並且不會銷燬標頭中的JavaScript?謝謝! – Alex

回答

1

嘗試做

<script type="text/javascript">...</script>. 

,並確保您

<scripts /> 

arn't各地的任何

<?php ?> 

標籤

2

包裹既然你還沒有表現出任何PHP代碼或告訴我們如何後端工作,我必須猜測。它看起來好像你正在使用Smarty或任何其他類似的模板引擎。當我開始使用它時有同樣的問題。

看一看這個documentation

所以,做這種方式:

{literal} 
    // your javascript code 
{/literal}