1

警告: 私は物事を説明するのが得意ではありません。私の英語は完璧ではありません。また、php、javascript、および jquery には少し慣れていません。それを処理できると思われる場合は、読み続けてください。

だから、ウェブサイトに div を追加し、ドラッグしてスケーリングできる小さなシステムがあります。これは jquery を使えば簡単です。ただし、css および html ファイルへの変更を保存しようとしているので、次にページを開くと、編集したのと同じようになります。

まだ準備はできていませんが、それが可能であることはわかっています。ただし、それを完了する前に、誰かがそれをよりシンプルまたはより良くする方法を提案しているかどうかを知りたい.

それが今どのように機能するかを説明します:

ユーザーはいくつかの div を追加し、スケーリングしてドラッグします。(JQuery UI)。ユーザーが変更を保存するボタンをクリックすると、システムはメイン コンテナーにある子要素の数をチェックします (ユーザーが作成したすべての div はメイン コンテナーの子です)。これで、システムはすべての子要素をループし、その次元 (、、、)widthを次のように配列heightに取得します。ループが完了すると、システムは配列を文字列に結合し、異なる要素はセミコロンで区切られます。leftright[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 ファイルの作成は含まれていませんが、投稿データで構成される配列に含まれる値の数を確認し、各 div の id が "div(number)" である html ファイルに等量の div を作成するだけで簡単に実行できます。 "。

ページが読み込まれると、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 に保存します ( Javascript での Cookie の使用について説明している Quirksmode へのリンクです)。ページの読み込み時に、javascript を使用して Cookie からディメンションの状態を取得し、それを要素に適用しようとします。jQuery by html (css) クラスでフィルタリングできるので、簡単な作業です。

正しく行えば、ユーザーは何も気付かないでしょう。

于 2009-03-07T12:20:02.180 に答える