2013-10-22 84 views
1

我創建了一個編輯特定div的背景圖像,顏色,大小和位置的腳本。 在文件準備腳本搜索特定的div和負載設置用CSS設置背景圖像jquery

var color_default = $('.banneruser').css("background-color"); 
var image_default = $('.banneruser').css("background-image"); 
var align_default = $('.banneruser').css("background-position"); 
var size_default = $('.banneruser').css("background-size"); 

用一個簡單的面板I單獨編輯所有設置和保存按鈕我做一個AJAX調用設置爲數據庫中的所有我的設置

function don() { 

      var color_set = $('.banneruser').css("background-color"); 
     var align_set = $('.banneruser').css("background-position"); 
     var size_set = $('.banneruser').css("background-size"); 
     var image_set = $('.banneruser').css("background-image"); 


     $.ajax({ 
      type: "GET", 
      url: "set.php", 
      data: "color=" + color_set + "&align=" + align_set + "&size=" + size_set + "&image=" + image_set, 
      success: function(response){ 
       alert(response); 
      } 
     }); 
     return false; 
} 

而且set.php perfecly保存到數據庫

<? include 'config.php'; connect(); session_start(); 

    $color=mysql_real_escape_string($_GET['color']); 
    $image=mysql_real_escape_string($_GET['image']); 
    $align=mysql_real_escape_string($_GET['align']); 
    $size=mysql_real_escape_string($_GET['size']); 

    //data 
    $query = "SELECT * FROM utenti WHERE username='".$_SESSION['user']."'"; 
    $result = mysql_query($query); 
    $id = mysql_result($result,0,"id"); 

    $banner = "background-color:".$color."; background-image:".$image."; background-position:".$align."; background-size:".$size."; "; 

    $done= mysql_query("UPDATE `utenti` SET `banner` = '$banner' WHERE `id` = '$id';"); 

    if($done){ echo '<i class="icon-ok-sign"></i>'; } else { echo '<i class="icon-warning-sign"></i>'; } 

?> 

基本上,這項工作對鉻但Firefox和IE設置到數據庫中一個奇怪的字符串,這樣

background-color:rgb(219, 126, 50); background-image:url(" http:="" posth.it="" account="" felicegg="" banner.jpg");="" background-position:50%;="" background-size:auto;="" "=" 

即使我在我的數據庫完全把它讀作

background-color:rgb(219, 126, 50); background-image:url("http://posth.it/account/felicegg/banner.jpg"); background-position:50%; background-size:auto; 

PS:如果我設置鉻,IE和Firefox的設置完美地讀取字符串,即使它發生了這個問題(也在Chrome上)。

問題是爲什麼? :D有什麼想法?

+0

還不是很清楚。我直接注意到的一點是,你錯過了URL編碼,你正在發送到服務器的值,所以這可能是一個問題,取決於變量,特別是'image_set'實際包含的內容。 – CBroe

回答

1

你應該逃脫你的數據:你問這裏有什麼

function don() { 

     var color_set = $('.banneruser').css("background-color"); 
     var align_set = $('.banneruser').css("background-position"); 
     var size_set = $('.banneruser').css("background-size"); 
     var image_set = $('.banneruser').css("background-image"); 

     $.ajax({ 
      type: "GET", 
      url: "set.php", 
      data: "color=" + encodeURI(color_set) + "&align=" + encodeURI(align_set) + "&size=" + encodeURI(size_set) + "&image=" + encodeURI(image_set), 
      success: function(response){ 
       alert(response); 
      } 
     }); 
     return false; 
} 
+0

urlencode是一個PHP函數。 javascript(最接近)相當於encodeURI。 –

+0

對不起,我的錯,會修復它 – Legionar

+0

問題是......爲什麼鉻不能解決這個問題? –