1

警告:我不是一个解释事情的好人,我的英语不是很完美,而且我对 php、javascript 和 jquery 有点菜鸟。如果您认为自己可以处理,请继续阅读。

所以,我有一个小系统,你可以在其中向网站添加 div,拖动它们并缩放它们。使用 jquery 很容易。但是,我正在尝试将更改保存到 css 和 html 文件,因此下次打开页面时,它就像您编辑它一样。

它还没有准备好,但我知道有可能做到这一点。但是,在完成它之前,我想知道是否有人建议如何以任何方式使其更简单或更好。

我将解释它现在是如何工作的:

用户添加了几个 div,缩放并拖动它们。(jQuery 用户界面)。当用户单击保存更改的按钮时,系统会检查主容器有多少子元素(所有用户创建的 div 都是主容器的子元素)。现在系统循环所有子元素并将它们的维度 ( width, height, left, right) 放入这样的数组[0]="200,300,500,500"中。循环完成后,系统将数组连接成一个字符串,其中不同的元素用分号分隔。

系统发布字符串$.ajax()并使用 php 文件读取它,这就是 php 文件中发生的情况:

  1. php 将通过 post 得到的字符串解析成这样的数组

    [0]="200,300,500,500"
    
  2. 现在它遍历数组的内容,将每个字符串解析为 4 个变量

    $width = 200;
    $height = 300;
    $left = 500;
    $top = 500;
    
  3. 现在系统将这些值作为字符串放入另一个数组中,并将 css 代码添加到字符串中。所以这个新数组看起来像这样

    [0] = "#div0{width:200px;height:300px;left:500px;top:500px;}."
    
  4. 数组完成后,系统将其内爆成字符串,删除旧customstyle.css文件并将字符串写入新customstyle.css文件。

此处不包括自定义 html 文件的创建,但只需检查由发布数据组成的数组有多少个值,然后在 html 文件中创建等量的 div,其中每个 div 的 id 为“div(number) ”。

当页面加载时,php 包含自定义 css 和 html 文件。目标是拥有不需要 javascript 且 xhtml 有效且样式简单的索引页面,以及用于编辑且需要 javascript 的其他页面。

我认为这个系统太复杂了,有太多的数组等等。但我不知道如何让它更简单:)

我正在考虑在开始时使用 javascript 创建整个样式字符串并将其作为一个整体发布到 php 中,然后将它原样写入样式表。但它比现在大得多,发布它不会那么有效。(这并不重要,因为我是唯一一个尝试该系统的人,但感觉不对:P)

4

2 回答 2

1

保存按钮可以组装一个包含所有 div 集合的 json 对象。它比使用字符串提供了许多优点,并且可以很容易地被 php 读取。

在 php 方面,为自定义元素编写一个类。它将有助于提高可读性,并允许您以更合乎逻辑的方式组合数据。类可以像这样简单

class CustomElement{
    public $height;
    public $width;
    public $leftPos;
    public $rightPos;
    private $elmentName;

    public function __construct($name){
       $this->elementName = $name
    }
}

现在,每当您想处理新的自定义元素时,您都可以

$curElement = new CustomElement("div2");
$curElement->height = 600;
$curElement->width = 800;
...
于 2009-03-07T15:29:34.487 回答
0

这听起来像是 cookie 的工作。基本上,您将维度状态保存到 cookie(这里是 Quirksmode 的链接,描述了在 Javascript 中使用 cookie)。在页面加载时,您尝试使用 javascript 从 cookie 中检索维度状态并将其应用于您的元素。您可以通过 html (css) 类使用 jQuery 过滤它们,因此这是一项简单的任务。

如果你做得对,用户不会注意到任何事情。

于 2009-03-07T12:20:02.180 回答