2012-03-08 51 views
1

我開發一個產品,我將提供一個選項一起使用是從可靠的來源,如ColorZilla複製並粘貼自己的CSS漸變代碼的能力。如何存儲在一個PHP變量CSS代碼使用JavaScript

我如何在PHP對象(如默認設置使用)的JavaScript/jQuery代碼內,並輸出其保存這樣的代碼,同時保持代碼的編程意識。我曾嘗試使用「addslashes()」無濟於事。

目前,我已經有了:

$default_options = array(
     'header_wrap_grad'   =>   ' 
              background: rgb(169,3,41); /* Old browsers */ 
              background: -moz-linear-gradient(top, rgba(169,3,41,1) 0%, rgba(143,2,34,1) 44%, rgba(109,0,25,1) 100%); /* FF3.6+ */ 
              background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(169,3,41,1)), color-stop(44%,rgba(143,2,34,1)), color-stop(100%,rgba(109,0,25,1))); /* Chrome,Safari4+ */ 
              background: -webkit-linear-gradient(top, rgba(169,3,41,1) 0%,rgba(143,2,34,1) 44%,rgba(109,0,25,1) 100%); /* Chrome10+,Safari5.1+ */ 
              background: -o-linear-gradient(top, rgba(169,3,41,1) 0%,rgba(143,2,34,1) 44%,rgba(109,0,25,1) 100%); /* Opera 11.10+ */ 
              background: -ms-linear-gradient(top, rgba(169,3,41,1) 0%,rgba(143,2,34,1) 44%,rgba(109,0,25,1) 100%); /* IE10+ */ 
              background: linear-gradient(top, rgba(169,3,41,1) 0%,rgba(143,2,34,1) 44%,rgba(109,0,25,1) 100%); /* W3C */ 
              filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=\'#a90329\', endColorstr=\'#6d0019\',GradientType=0); /* IE6-9 */ 
              ', 

再後來就標籤Ive得到內:

$('#header-wrap-grad').attr('value', '<?php echo addslashes($default_options['header_wrap_grad']); ?>'); 

與#頭,總結畢業生是說我的文字區域試圖用變量的CSS代碼填充。但是,這不起作用。當我試圖回顯變量時,我得到這個錯誤「Unexpected token:」。

有人可以指點我正確的方向嗎?

謝謝。

回答

2

你要創建一個JavaScript字符串,所以使用json_encode(沒有引號包圍):

$('#header-wrap-grad').attr('value', <?php echo json_encode($default_options['header_wrap_grad']); ?>); 
+0

感謝JW。這工作完美! – Codemagnet 2012-03-08 10:10:20

1

你有這樣的字符串內的換行符的問題,他們將打破JS代碼。

您可以編碼與rawurlencode PHP中的字符串和解碼與decodeURIComponent在JS的字符串。

$('#header-wrap-grad') 
.attr('value', 
    decodeURIComponent('<?php echo rawurlencode($default_options['header_wrap_grad']); ?>')); 
相關問題