2011-02-09 5 views
5

フィールドワーカーが多く、自分の仕事ごとにたくさんの証明書を記入する必要がある会社でシステムを作っています。これは、メインサーバに同期するmysql/php/apacheシステムを実行しているタブレットPCで行います。"ダイナミック"フォームを作成し、2つのフィールドにデータとフォームのデザインを保存する方法

これらの証明書は大きく変更されるため、常に最新のリビジョンを取得しています。これを伝統的なデータベース/ php/htmlの設定で作れば、私は設計とデータベースを永遠に変え、証明書のデザインとデータの改訂を扱うことについては話しません。 (フィールドの追加、削除)

私はフォームを設計し、そのデザインとデータを1つの行(2つのフィールド)に格納する方法を探しています - mysqlデータベースにあります。そのため、特定の行を読み込むときには、常にそのデータに合った正しいデザインが得られ、一緒にマージできます。これはxformsで行うことができますが、ブラウザはこれを行うためにプラグインを必要とします。 xformsは面倒です。

唯一のテキストフィールドで行うのは非常に簡単ですが、私は、任意のブレーンストーミングが高く評価され、チェックボックス、リストなど....

を必要としています。

+0

を助け、あなたが別の証明書に基づいてつなぎ合わせることができ、「モジュラー」フォームフィールドのいくつかの並べ替えをしたいですか? (例えば、3つの入力テキストと1つのチェックボックスが必要で、2つのテキストフィールドと2つの選択が必要です) –

+0

はい - それによって生成されたデータを保存します。私はフォームが決して同じではないと仮定しなければならないので、私はデータとフォームを並べて保存する必要があります。 – Anders

答えて

1

ValidFormをチェックすると、フォームを処理するユーザーのための素晴らしいオープンソースライブラリとなります。

  • 検証
  • クライアント側のセキュリティ
  • サーバーサイドのセキュリティ
  • スタイルはるか
  • :これはちょうどそれが扱うフォームを処理しません!

あなたは間違っていることはできません。そのほとんどは無料で使いやすく、あなたにとって理想的だと思います!運のベスト

http://validformbuilder.org/

、 タイラー・ムーア

1

はこれを試してみてください。

2つのフィールドを持つテーブルを作成し、次にcsvを使用してデザインとデータをテーブルの2つのフィールドに格納します。例えば

nameTxt、ageTxt、genderRdo、agreeChk XXX、25、M、はい

、あなたは簡単に

$ csvExplode = ""(爆発、$を使用して、これを爆発することができますfetchedData);

さらに情報をスタイリングしたい場合は、もう1つの列を作成し、その中の各フィールドのスタイル情報を保存します。

これが役に立ちます

+0

私は "店の店"の外観が好きではありませんが、実際にはうまくいくかもしれません。 従来のリレーショナルデータベースでなければならない場合は、フィールド名を持つテーブルと、それぞれのフィールド名に関連する値を持つテーブルを使用することをお勧めします。 –

3

certifacatesを格納するMongoDBのようなNoSQLを使用するとどうなりますか?それはあなたのために働くだろうか?

2

上記のように、ユーザーデータをデータベースに保存する方法を特に探している場合は、データベースエンジンをNoSQL dbeに変更するか、データをCSV、JSONにエクスポートするか、 php serialize()関数。

実際のフィールド名を使用する場合は、データを格納するために複数のテーブルを使用できます。メインテーブルは、証明書のタイプと、特定の証明書のデータを保存する別のテーブル内の実データのID(およびおそらく何らかの一般的なデータ、たとえばタイムスタンプ)を持ちます。

このメソッドは完璧ではないし、より多くのPHPコードを必要とし、複数のテーブルから同様のデータを取得する必要がありますが、私が望む方法です。

1

多次元配列にデータを格納し、次にphp serialize()関数を使用してデータをデータベースに格納する方法はありますか?

2

ZendFrameworkなどのフォームモジュールを使用してフォームを生成し、そのオブジェクトをシリアル化してデータベースに格納することができます。次に、検証でbuildtを取得し、そのフォームをデータベースからのデータで満たすのは簡単です。

0

次のフィールドを持つテーブルを作成します。

  1. ID - PK /自動インクリメント
  2. フィールド名
  3. FIELDTYPE
  4. 必要(真/偽)を

次に、値をセーブに保存するだけですERATEテーブル:

  1. ID
  2. FK_Field_IDは - あなたはまた、潜在的にフィールドテーブルを参照するフォームの表を持っている可能性が

フィールド表を参照します。

次のように、フィールドのクラス(CreateTextInput、CreateNumberInputなど)を作成することをお勧めします。これは、メソッドをオーバーロードすることで正確に行っています。申し訳ありませんがコードを共有することはできません。クライアント向けです。

希望これは、私は完全にあなたの質問を把握していない可能性があり、 IgnitedCoder.com

関連する問題