2

大きくて複雑なフォーム (フィールド、チェックなど) を持つ Web アプリがあります。標準の OS フォーム コントロールには視覚的な (スタイリング) 制限があるため、使用していませんでした。

私は基本的に、ID を使用してスパンを作成し、クラスまたはカスタム データ属性をアタッチしています。後でデータベースに挿入するために、これを PHP スクリプトに送信する必要があります。これは過去にうまく機能していましたが、フィールドを手動で処理する必要があり、効率的ではないと思います...もっと良い方法はありますか?

私は現在、

IF ($('#foo').hasClass('on')){bar=1}

...

次に、手動で POST 文字列を作成します

foo=bar&bla=blabla ...

次に、挿入 SQL ステートメントを作成するために、PHP 側でさらに多くのことを行います。何十ものフィールドがあると効率が悪いように思えます...しかし、標準のFORM要素は嫌いです...

助言がありますか?....ループ?配列?

4

3 に答える 3

1

フォームを使用する必要があります。しかし、それをきれいにする方法は?

JavaScriptを使用すると、フォームの一種のフロントエンドを使用できます。フォーム要素を非表示にし、インタラクション時にフォームフィールドの値を変更するJSをいくつか用意します。

Googleで検索pretty forms jqueryします。

于 2012-07-03T06:06:53.203 に答える
0

私が理解していることから、クラス「on」を持つ各要素の値を手動で取得したくないということです。必要なすべての要素をループするjQueryの各関数を使用できます。何かのようなもの:

​var query = "";

$(".on")​​.each(function(i){
    if(i === 0) {  
      query+="?"+$(this).attr('id')+"="+$(this).text();            
    } else {
        query+="&"+$(this).attr('id')+"="+$(this).text();            
    }
});

(参照: http://jsfiddle.net/MkbrV/ )

これはあなたが探しているものですか?

于 2012-07-03T06:02:23.000 に答える
0

jQuery のserialize()メソッドを使用できます。

$('form .on').serialize();

jsFiddle の例

于 2012-07-03T06:19:10.953 に答える