عملیات های زمان بر در فلاتر

- 2 هفته پیش
توسط الیاس بشکنی آپدیت شد
الیاس بشکنی ( 8625 تجربه )
4 هفته پیش

سلام
@hesammousavi
من یه سری داده پشت سر هم دارم که توی حلقه فورایچ دارم وارد دیتابیس میکنم و میگم اگه همشون وارد شد پیغام اوکی بده!
ولی خب دفعه اول میگه وارد دیتابیس نشده درصورتی که توی دیتابیس وارد شدن، و بار دوم که دوباره روی دکمه بررسی میزنم اونقت پیغام اوکی میده، حس میکنم عملیاتش زمان بره و برای دفعه اول متغیر من true نمیشه که اوکی بده و false میمونهُ کسی میتونه راهنمایی کنه باید چیکارکنم؟
مثلا وقتی روی ثبت اطلاعات زد اول یه پروگرس بار بیاد و وقتی کار درج داده تموم شد، اونوقت پیغام بده!
ممنون میشم کمک کنید

یعنی وقتی روی دکمه درج اطلاعات میزنم بعد از انجام کار با این حال که داده ها درج شده ولی هنوز متغیر isOK همون false میمونه ولی وقتی دوباره روی ثبت اطلاعات میزنم اونوقت true میشه (یعنی دوبار داده درج میشه که بار اول خطا میده بار دوم اوکی میده)

تیکه هایی از کد هام

class InsertDoneQuestionAnswer {
  static Future<Map> insertDQAIntoServer(
      String qID, String aID, String dqID) async {
    Map<String, String> body = {'qid': qID, 'aid': aID, 'dqid': dqID};

    final response = await http
        .post(GlobalData.siteAddress + 'insert_dqans.php', body: body);

    if (response.statusCode == 200) {
      var responseBody = json.decode(response.body)['data'];
      return {'status': responseBody.toString()};
    }
  }
}

-----------------------------------------

  void insertAns() async {
    GlobalData.userAns.forEach((qID, aID) async {
      var response =
          await InsertDoneQuestionAnswer.insertDQAIntoServer(qID, aID, '1');

      if (response['status'] == 'ok') {
        setState(() {
          isOK = true;
        });
      } else {
        setState(() {
          isOK = false;
        });
      }
    });

    if (isOK == true) {
      await showFinishMsg();
    } else {
      await showErrMsg();
    }
  }
الیاس بشکنی ( 8625 تجربه )
3 هفته پیش

@hesammousavi
من وقتی اولین بار روی دکمه ارسال اطلاعات میزنم خطا میده، ولی، دوباره که روی دکمه میزنم پیغام اوکی میده!

https://roocket.ir/discuss/%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%A8%D9%87-%D8%B3%D8%B1%D9%88%D8%B1-%D8%AF%D8%B1-%D9%81%D9%84%D8%A7%D8%AA%D8%B1

کسی نمیدونه مشکل چیه؟ کارم واقعا گیره
ممنون میشم کمک کنید

الیاس بشکنی ( 8625 تجربه )
2 هفته پیش

@hesammousavi
من وقتی اولین بار روی دکمه ارسال اطلاعات میزنم خطا میده، ولی، دوباره که روی دکمه میزنم پیغام اوکی میده!
به نظر شما مشکل از چیه؟
کدهای رو بالاتر گذاشتم!
اینم کدهای php :

<?php

$qid=(int)$_POST['qid'];
$aid=(int)$_POST['aid'];
$dq_id=(int)$_POST['dqid'];
include_once 'db.php';

$query1 = "INSERT INTO done_ans(qid, aid, dq_id) VALUES ($qid,$aid,$dq_id) ";
$result1 = $connect->prepare($query1);

if ($result1->execute()) {
    $record1['data'] = 'ok';
    $record1['status'] = 'success';
    echo json_encode($record1);
} else {
    $record1['data'] = 'اطلاعات پیدا نشد';
    $record1['status'] = 'faild';
    echo json_encode($record1);
}

?>
برای ارسال پاسخ باید وارد سایت شوید