2012-03-08 50 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']); ?>')); 
相关问题