0

小さなWebページを作成するためにweb.pyフレームワークを使用しています。以下のように4つのチェックボックスフィールドを持つフォームを持つ基本的なhtmlがありました。

home.html

$def with ( )
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Home</title>
</head>
 <body>
   <form method="POST" action="/checkboxes">
      <p>check_1     <input type="checkbox" id="curly_1" value="" name="curly_1"/></p>
      <p>check_2     <input type="checkbox" id="curly_2" value="" name="curly_2"/></p>  
      <p>check_3     <input type="checkbox" id="curly_3" value="" name="curly_3"/></p>  
      <p>check_4     <input type="checkbox" id="curly_4" value="" name="curly_4"/></p>      
      <button id="submit" name="submit">Submit</button>
   </form>
 </body>
</html>

index.py

import os
import sys
import web
from web import form

render = web.template.render('templates/')


urls = (
  '/checkboxes',   'Checkboxes',  
)
app = web.application(urls, globals())

class Checkboxes:

    def POST(self):
        i = web.input(groups = {})
        print i,">>>>>>>>>>>>"
        raise web.seeother('/checkboxes')

if __name__ == "__main__":
    web.internalerror = web.debugerror
    app.run()  

結果:

<Storage {'curly_3': u'', 'submit': u'', 'curly_4': u'', 'curly_1': u'', 'groups': [], 'curly_2': u''}> >>>>>>>>>>>>

したがって、HTMLビューから、4つのcheckboxフィールドを確認できます。すべてのチェックボックスをオンにして、送信ボタンをクリックしました。これで、Checkboxesクラスに移動し、上記のようにpostメソッドで入力(チェックされたチェックボックス)の結果を出力する必要があります。 。

しかし、結果として、上記のように空の文字列(結果なし)を取得しています、

上記のコードの何が問題なのか教えてください

また、選択されているチェックボックスの値を取得する方法は?

4

2 に答える 2

1

web.input()によって返されるディクショナリにチェックボックス要素の名前が存在することは、フィールドがチェックされたことを示します。それ以外の場合は、辞書に表示されません。フォームの4つのチェックボックスのサブセットをチェックしてみてください。そうすれば、私が何を意味するのかがわかると思います。

詳細:https ://groups.google.com/forum/#!searchin / webpy / checkbox / webpy / PVBdPv7kGDM / IqgLptUEN-EJ

于 2012-11-15T07:07:03.537 に答える
1

すべてのチェックボックスの値をオンまたはオフにする必要がある場合は、ajax 呼び出しのように処理できます。この変更では、入力タイプをボタンに送信します。次に、すべての入力チェック ボックスをオンまたはオフにして、その値を json に入力します。次に、その値をコントローラの post メソッドに取得します。

于 2013-03-07T11:01:46.960 に答える