2009-06-02 2 views
0

私は、100個ほどの値を含むコンボを持つWebフォームを作成しています。値は同じです。固定htmlのためのdocument.writeの使用

フォームには複数のレコードが含まれる場合があります。 100レコードがある場合、「ダウンロード」の観点からはかなり間違っているような10,000行があります。

問題は次のとおりです。idをデータベースから保護するために、そのコンボダイナミックを維持したいと考えています。

だから私は、次のところに来:

..... 
<script> 
     stupidCombo = "<option>a"+ 
        "<option>b"+ 
        ... 
        "<option>99zzz"+ 
        "</select>"; 
</script> 
..... form here 
.... for each item in huge list do paint <table><tr> etc. etc 

<td> 
<select name="comb-<%=id%>"> 
     <option selected><%=obj.val%> 
     <script>document.write(stupidCombo);</script> 
</td> 
... close form, table, html etc. 

私はそれをレンダリングし、細かい「見て」います。ページは50k行から5kに減少し、選択はクライアント側のjavascriptによって作成されます。

私の質問は.....

これは問題ありませんか?

リスクはありますか?

私はjavascriptのフレームワークのほとんどは動作しますが、それらのほとんどは、単に文書それ自身にそのむしろ< div>の要素で働く人々を理解した後にこのアイデアを借ります。

私はIE6をターゲットにしていますが、これは明日の朝のプロダクションである必要があります(私はこれであまり時間を費やしたくありません)。しかし、私は50,000行を書きたいとは思わないもし私がそれを助けることができるなら、それぞれの要求。

ありがとうございます。

答えて

1

HTMLは通常のものと同じように動作しますので、あなたの解決策とは技術的な問題はありません。 (もちろん、そのようなソリューションはjavascriptが有効な場合にのみ有効です)

ところで、オプションの数が多いリストでは、ネイティブのselectboxの代わりに"suggest box" componentを見ることができます。

+0

Yeap、私はフレームワークを追加するような気がしませんでした。私はこの小さなフォームを完成するのに数時間しかかからず、別のものをミックスに追加したくありませんでした。 – OscarRyz

1

JavaScriptが無効な場合は、明らかに動作しません。

0

Googleは(「のdocument.write」)のすべての時間(解析/アドセンス/ ...)それをしないので、私はそれに何か問題があるだろう、なぜ表示されません。

<script>タグが<select>タグの内側にあるため、ソリューションが少しばかり見えるので、いくつかのブラウザをよくチェックしてください。結局のところ、あなたはIEがする何が起こっているかを知ることはありません:)のdocument.writeによって生成

+0

まさに私の関心事です:これは「緊急」の修正プログラムであるため、S ... .Iはちょうど(あなただけだったが起こる何かである私が世界でどこも仕事と知って、今ではIE6を必要とします右:?):) – OscarRyz

3

HTTP圧縮(mod_gzipの、等)がうまくすべてを圧縮します。

あなたはdocument.writeを主張する場合は、HTMLであなたが<select><script>を置くために許可されていないので、同様<select>要素を記述するためにJavaScriptを使用する必要があります。

別のアプローチは、ブラウザにコントロールの1つのコピーを送信し、その後selectElement.cloneNode(true)の助けを借りて、それを複製することです。

+0

< - これは避けてくださいdoc.write – annakata

+0

: - /それは私が恐れていることです。事は、