2011-09-07 146 views
1

我将如何去使用jQuery永久性地向html元素添加一个类。jquery永久性更改html

我打算建立一个图像库,使用jQuery sorting plugin分类到不同类型/类别中。我想在每张图片下方添加一个下拉框,允许用户更改类型(添加/删除类),该类型会永久更改下一次加载的HTML。我将如何去做这件事?

编辑:好了,所以从我可以放在一起,我应该使用这种方法:

  1. jQuery的添加/删除类。
  2. 通过AJAX请求发送完整的HTML源代码。
  3. PHP写入完整的HTML文件或有没有办法只替换PHP中的文件的特定部分?
+0

所有用户都可以使用该更改吗?或者每个用户都是独立的? –

+0

范围过宽。你基本上在问如何编写一个迷你CMS! (有点) –

+0

不是一个CMS,只是一个页面排序图像。 –

回答

3

您首先需要了解客户端脚本和服务器端编程之间的区别。

服务器将返回一组html在您的情况下由服务器端php生成的每个响应。

如果你想修改某个元素上的一个类,并且你希望这个修改能够在下一个生成的服务器端PHP响应中生存下来,你需要以某种方式通知服务器你的变化。

有几种选择可以将数据从客户端发送到服务器端。

  1. 存放在hiddenfield
  2. 值进行AJAX请求,并在一些地方保存价值的服务器上,以便它知道在请求这种变化。
  3. 将其添加到请求的url的查询字符串中。
+0

好吧我理解的AJAX过程,这需要在PHP中完成,但有没有办法通过添加类名来物理改变文件? –

+0

如果我理解正确,您想要使用下拉菜单更改类型,那么当您应用过滤器时,结果会发生变化? (我从演示网站看到这个) – Peter

+0

是的,这是正确的,虽然不是将它保存在cookie中或涉及到数据库,但我想知道如何才能真正修改HTML永久性,就像添加/删除一个类。 –

4

您可以使用jQuery's ajax功能将已编辑的HTML发送回服务器,以便在用户进行更改后存储在数据库中。

然后,您可以在下次加载时从数据库中建立页面的相关部分。

$('#mySelectBox').change(function(){ 
$.ajax({ 
    url: "updateHtml.php", 
    data: $('#myEditedHtmlContainer').html(), 
    success: function(){ 
    // do something on success 
    } 
}); 
}); 
0

一个解决方案是将用户决定存储在cookie中。在非常页面加载期间,您需要检查cookie中的适当值并基于该值应用CSS。

+0

如果应用这些类的用户是唯一需要查看这些类的用户,那么只有一个正确的解决方案。 – fvu