2013-05-28 177 views
1

保存主题的变化我有一个网站,我可以通过点击这样的颜色更改主题:阿贾克斯

<ul> 
    <li> 
     <span class='red'></span> 
     <span class='orange'></span> 
     <span class='green'></span> 
    </li> 
</ul> 

这部分工作得很好,但是......当清爽的页面,又回到正常,所以。

我想使用jQuery Ajax将颜色保存在我的数据库中,但不知道如何将颜色onclick发送到我的jQuery函数?

$(function() { 
    $('.themechange').click(function() { 
     $.ajax({ 
      type: "POST", 
      url: "http://mydomain.com/updatetheme.php", 
      data: "color=somecolor", 
      success: function(msg){ 
      alert("Data Saved: " + msg); 
      } 
     }); 
    }); 
}); 

我不知道如何做到这一点,并希望寻求帮助:-)

+1

,你能告诉我们你的'.themechange' HTML是..what? – bipen

+0

。Themechange没什么。只是我放了一些东西,我不知道该把什么放在这里? – Mansa

+0

将类'themechange'添加到您的span标记中,比如'class ='red themechange'',并且为它们中的每一个都添加一个'id',它们的名称如'id =“red”',然后在'data'属性中jquery ajax写入'data:“color =”+ $(this).attr('id'),'。你准备好了! – MahanGM

回答

1

尝试是这样的:

<ul> 
     <li> 
      <span class='red themechange' data-color='red'></span> 
      <span class='orange themechange' data-color='orange'></span> 
      <span class='green themechange' data-color='green '></span> 
     </li> 
    </ul> 

的Jquery:

$(function() { 
    $('.themechange').click(function() { 
     $.ajax({ 
      type: "POST", 
      url: "http://mydomain.com/updatetheme.php", 
      data: "color=" + $(this).data('color'), 
      success: function(msg){ 
      alert("Data Saved: " + msg); 
      } 
     }); 
    }); 
}); 
0

GET您的列表元素的同一类:

<ul> 
    <li> 
     <span class='themechange' data-color='red'></span> 
     <span class='themechange' data-color='orange'></span> 
     <span class='themechange' data-color='green '></span> 
    </li> 
</ul> 

(function() { 
$('.themechange').click(function() { 
    $.ajax({ 
     type: "POST", 
     url: "http://mydomain.com/updatetheme.php", 
     data: "color=" + $(this).attr('data-color'), 
     success: function(msg){ 
     alert("Data Saved: " + msg); 
     } 
    }); 
0

查看在更改主题时要添加哪个课程。它可能会添加到您的页面的正文。如果是这样,然后将该类存储到jQuery Cookie中,或者可以使用php会话/ cookie [通过ajax]。然后将php会话/ cookie变量添加到正文。像这样<body class="<?php echo $_SESSION['themeName'] ?>">

1

你必须得到颜色值,并呼吁click事件阿贾克斯

http://jsfiddle.net/ZmbbA/2/

$(document).ready(function(){ 
    $("li").click(function(){ 

     alert('Here ajax happens with color: ' + $(this).attr("class")); 
    /* 
    $.ajax({ 
     type: "POST", 
     url: "http://mydomain.com/updatetheme.php", 
     data: { color: $(this).attr("class") } 
     }).done(function(msg) { 
     alert("Data Saved: " + msg); 
    }); 
    */ 
    }); 
});