当前位置: 首页 > 知识库问答 >
问题:

如何使复选框从数据库MySQL中动态抖动?

蒋原
2023-03-14

我想使复选框动态地抖动,从数据库MySQL中检索数据。因此,这段代码可以显示来自MySQL的数据。但还是无法一一核对。这是我的代码:

class TambahDataTanaman extends StatefulWidget {
  @override
  _TambahDataTanamanState createState() => _TambahDataTanamanState();
}

class _TambahDataTanamanState extends State<TambahDataTanaman> {
  GlobalKey<FormState> addTanamanKey = GlobalKey<FormState>();
 
  bool selected = false;
  Future<List> getData() async {
    final response =
        await http.get("http://192.168.1.9/tanampedia/tanahtampil.php");
    return json.decode(response.body);
  }

  List selectedData = [];


  @override


  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text("Tambah Data Tanaman"),
          backgroundColor: Colors.green,
        ),
        body: SingleChildScrollView(
          child: Form(
            key: addTanamanKey,
            child: Padding(
              padding: const EdgeInsets.all(10.0),
              child: ListView(
                shrinkWrap: true,
                children: [
                  new Column(
                    children: [
                      new FutureBuilder<dynamic>(
                          future: getData(),
                          builder: (context, snapshot) {
                            if (snapshot.hasError) print(snapshot.error);
                            return snapshot.hasData
                                ? ListView.builder(
                                    shrinkWrap: true,
                                    itemCount: snapshot.data.length,
                                    itemBuilder: (context, index) {
                                      //List list = snapshot.data;
                                      return CheckboxListTile(
                                        title:
                                            Text(snapshot.data[index]['nama']),
                                        value: selected,
                                        onChanged: (bool newSelected) {
                                          setState(() {
                                            selected = newSelected;
                                          });
                                        },
                                        dense: true,
                                      );
                                    })
                                : new Center(
                                    child: new CircularProgressIndicator());
                          }),

                     
                      new RaisedButton(
                          child: new Text(
                            "Tambah Data",
                            style: TextStyle(color: Colors.white),
                          ),
                          color: Colors.green,
                          onPressed: () {}),
                    ],
                  ),
                ],
              ),
            ),
          ),
        ));
  }
}

我使用future builder为我的CheckBoxList创建列表。但是在运行代码的时候,上面代码的结果是同时检查了所有的值,那么如何使它们正确呢?

共有1个答案

鄢朝斑
2023-03-14

这是因为来自循环的项是相同的,所以您应该添加Key:Key(index),

return CheckboxListTile(
     title: Text(snapshot.data[index]['nama']),
     value: selected,
     key: Key(index),
     onChanged: (bool newSelected) {
          setState(() {
              selected = newSelected;
          });
     },
     dense: true,
 );
 类似资料:
  • 如果数据库中的数据为是或否,如何选中复选框,我尝试使用attr函数,但没有成功 这是我的html

  • 问题内容: 是否可以从结构动态创建mysql数据库。 好像卡在了密码提示符下 问题答案: 试试吧

  • 我在mysql数据库中有名为的表,其中存在类、学生姓名等。 我想在jsp中使用select选项,这样当且仅当首先选择class时,在选择class之后,该特定类的所有学生姓名都应该通过从数据库中检索记录自动(动态)显示在另一个select下拉列表中。 在这里我想使用servlet进行数据库连接,并通过通过jsp访问所有数据库记录

  • 问题内容: 当我选中复选框时,我需要一些js / ajax / jquery脚本将数据动态保存到数据库中。复选框或当前加载到记录旁边的复选框,并根据是否选中变量来更改数据库中的变量。但是我必须在选择一个页面以将其保存到数据库后重新加载页面。我可以做其他所有事情,但了解如何对此实现ajax,因此我不必每次都提交查询并刷新页面。任何帮助是极大的赞赏。 问题答案: 使用jQuery来做,一个简单的例子可

  • 问题内容: 我已配置logstash.conf以动态插入数据库的数据,但问题是: 当我更改表的一行时,该行不会在索引中更新,因为我仅在sql_last_value之后插入新值,尽管我是关于触发器的,但我不确定该怎么做。 问题答案: 如果用于选择行,则不能这样做。您有2种选择, 每次都选择所有行,然后使用query将它们发送到ES ,根据您的情况,我认为这不是一个好选择。 创建一个新列,其中包含记录

  • 我有一个带有spring 3和hibernate框架的标准web应用程序。我有两个应用程序上下文。xml和hibernate。cfg。包含数据库连接数据的xml文件: ... 现在,我需要使用动态数据库名称更改这个应用程序,如何在ServletContextListener中设置它的运行时。contextInitialized?