如何在AJAX发布成功后显示提醒.alert?

时间:2016-09-14 13:00:11

标签: javascript jquery mysql ajax node.js

在我的Node应用程序中,我使用了get和post请求。使用get只需渲染页面并使用post插入数据到MySQL数据库中。数据插入正确,但在帖子被调用后,警报会很快消失。

这是我app.js的代码:

app.get('/Associate', routes.Associate);
app.get('/addAssociate',routes.addAssociate);
app.post('/addAssociate',routes.postAssociate);

这是我routes.js的代码:

Associate: function(req, res) {
      sess = req.session;
      var name = req.session.user;
      var username = 'SELECT first_name from user_info where email_id=?';
      if (sess.user) {
          console.log('\n--------------------- Associate ----------------------');

          var db = req.app.get('db')();

          var id = req.query['id'];

          // var newsquery='SELECT * from associate_info';
          var assoquery = 'SELECT associate_id,doctor_id,CONCAT(initial,"  ",first_name,"  ",middle_name,"  ",last_name) As Name,qualification,address_line1,city,state,pincode,email_id,contact_no from associate_info ';
          var redirect = 'Associate_Listing';

          async.parallel({
                  one: function(callback) {
                      db.query(assoquery, function(error, rows, fields, next) {
                          console.log("length-\t", rows.length);
                          callback(error, rows);
                      });
                  },
                  two: function(callback) {
                      db.query(username, [name], function(error, rows, fields, next) {
                          // console.log(rows.length);
                          console.log(rows);
                          callback(error, rows);
                      });
                  }
              },

              function(error, results) {

                  var totalNews = results.one.length;
                  for (var i = 0; i < results.one.length; i++) {
                      if (!(results.one[i].views > 0) || results.one[i].views == null)
                          results.one[i].views = 0;

                      results.one[i].ids = i + 1;
                      //                        if(!(results.one[i].views>0))
                      //                            results.one[i].views=0;
                  }
                  //        console.log("--------",results.one[0].id);
                  res.render(redirect, {
                      error: JSON.stringify(1),
                      from_period: 0,
                      to_period: 0,
                      state: JSON.stringify("All States"),
                      user2: "Dr" + " " + JSON.parse(JSON.stringify(results.two[0]["first_name"])),
                      user: JSON.parse(JSON.stringify(req.session.user)),
                      Associate: results.one,
                      str_journal: JSON.stringify(results.one),
                      user_type_id: req.session.user_type_id,
                      totalJournals: JSON.stringify(totalNews)
                  });

              });
      } else {
          res.redirect('/login');
      }
  },


  // addJournal:function(req,res){
  addAssociate: function(req, res) {
      console.log('\n-------------------- addAssociate ----------------------\n');
      var name = req.session.user;
      var db = req.app.get('db')();
      var username = 'SELECT first_name from user_info where email_id=?';
      if (req.session.user) {
          async.parallel({
                  one: function(callback) {
                      db.query(username, [name], function(error, rows, fields, next) {
                          console.log("length-\t", rows.length);
                          callback(error, rows);
                      });
                  }
              },
              function(error, results) {
                  res.render('addAssociate', {
                      user: JSON.parse(JSON.stringify(req.session.user)),
                      // cases : results.one,
                      user2: "Dr" + " " + JSON.parse(JSON.stringify(results.one[0]["first_name"])),
                      user_type_id: req.session.user_type_id,
                      //                    totalNews :JSON.stringify(totalNews)                
                  })
              });

      } else {
          res.redirect('/login');
          // res.redirect('addAssociate');
      }
  },


  postAssociate: function(req, res) {
      console.log('\n-------------------- postAssociate ----------------------\n');

      var db = req.app.get('db')();
      // res.send('Username: ' + req.body.doctorName);
      // var title = req.body.title;
      // var created =req.body.created;
      // initial : req.body.doctorName,
      // var id=1;

      // var dateArray=created.split('/');

      // var finalDate=""+dateArray[2]+"/"+dateArray[1]+"/"+dateArray[0];
      // var date1=new Date(finalDate);
      var initial;
      var first_name;
      var middle_name;
      var last_name;
      var qualification;
      var address_line1;
      var address_line2;
      var city;
      var state;
      var pincode;
      var email_id;
      var contact_no;
      var Uname = req.session.user;

      var post = {


          initial: req.body.initial,
          first_name: req.body.first_name,
          middle_name: req.body.middle_name,
          last_name: req.body.last_name,
          qualification: req.body.qualification,
          address_line1: req.body.address_line1,
          address_line2: req.body.address_line2,
          city: req.body.city,
          state: req.body.state,
          pincode: req.body.pincode,
          email_id: req.body.email_id,
          contact_no: req.body.contact_no,
          status: 1,


      };
      console.log('--------------------' + initial)

      console.log(initial);
      console.log(post);


      db.query('SELECT * from user_info where email_id= ? ', [Uname], function(error, rows, fields) {
          if (error) {
              console.log(error);

          } else {
              console.log('name------------' + Uname);
              console.log('rows---------' + rows.length);

              for (var i in rows) {
                  console.log('----------hhh---' + rows[i].doctor_id);
              }
              db.query('INSERT INTO associate_info SET doctor_id=' + rows[i].doctor_id + ', creation_date=CURRENT_TIMESTAMP(), ? ', post, function(error, result) {
                  console.log('inside if');
                  if (error) {
                      console.log(error);
                      res.status(200).send({
                          success: 3,
                          error: error
                      });
                      return;
                  }

                  console.log('Associate added successfully.');

              });


          }

      });

  },

这是jquery ajax代码

    $(document).ready(function() {
      $("#save").click(function() {

          var initial = $("#doctorName").val();
          var first_name = $("#firstName").val();
          var middle_name = $("#middleName").val();
          var last_name = $("#lastName").val();
          var qualification = $("#qualification").val();
          var address_line1 = $("#address1").val();
          var address_line2 = $("#address2").val();
          var city = $("#city").val();
          var state = $("#state").val();
          var pincode = $("#pincode").val();
          var email_id = $("#email").val();
          var contact_no = $("#mobile").val();

          var dr = /^[a-zA-Z]+\.$/;
          var alphaExp = /^[a-zA-Z]+$/;
          var zipexp = /^[0-9]{1,6}$/;
          var mobileexp = /^(\+91-|\+91|0)?\d{10}$/;
          var emailexp = /^[A-Z0-9_'%=+!`#~$*?^{}&|-]+([\.][A-Z0-9_'%=+!`#~$*?^{}&|-]+)*@[A-Z0-9-]+(\.[A-Z0-9-]+)+$/i;


          // Returns successful data submission message when the entered information is stored in database.
          var dataString = 'initial=' + initial + '&first_name=' + first_name + '&middle_name=' + middle_name + '&last_name=' + last_name + '&qualification=' + qualification + '&address_line1=' + address_line1 + '&address_line2=' + address_line2 + '&city=' + city + '&state=' + state + '&pincode=' + pincode + '&email_id=' + email_id + '&contact_no=' + contact_no;
          if (initial == '' || first_name == '' || middle_name == '' || last_name == '' || qualification == '' || address_line1 == '' || address_line2 == '' || city == '' || state == '' || pincode == '' || email_id == '' || contact_no == '') {
              alert("Please Fill All Mandatory Fields");
              return false;
          } else if (!initial.match(alphaExp) && !initial.match(dr)) {
              alert("please insert valid initial");
              $("#doctorName").val('');
              document.getElementById('doctorName').focus();
              return false;
          } else if (!first_name.match(alphaExp)) {
              alert("please insert valid first name");
              $("#firstName").val('');
              document.getElementById('firstName').focus();
              return false;
          } else if (!middle_name.match(alphaExp)) {
              alert("please insert valid middle name");
              $("#middleName").val('');
              document.getElementById('middleName').focus();
              return false;
          } else if (!last_name.match(alphaExp)) {
              alert("please insert valid last name");
              $("#lastName").val('');
              document.getElementById('lastName').focus();
              return false;
          } else if (!pincode.match(zipexp) || pincode.length != 6) {
              alert("please insert valid pincode");
              $("#pincode").val('');
              document.getElementById('pincode').focus();
              return false;
          } else if (!email_id.match(emailexp)) {
              alert("please insert email id");
              $("#email").val('');
              document.getElementById('email').focus();
              return false;
          } else if (!contact_no.match(mobileexp)) {
              alert("please insert valid contact no");
              $("#mobile").val('');
              document.getElementById('mobile').focus();
              return false;
          } else {
              // AJAX Code To Submit Form.
              $.ajax({
                  type: "post",
                  url: "/addAssociate",
                  // contentType: 'application/json',
                  data: dataString,
                  cache: false,

                  success: function(data) {
                      console.log("data-----------" + data);
                      alert("hi");

                  }

              });
          }
          // return;
          // return false;

      });
  });

我想在数据成功插入数据库后显示警告。

2 个答案:

答案 0 :(得分:0)

只需尝试以下操作即可延迟。

jQuery:

               $.ajax({
                     url:'path-to-process',
                     type:'POST',
                     data:{},
                     success:function(){
                             // Content to Display on Success.
                        setTimeout(function () {
                             // Content to Display on Success with delay.
                        }, 800);
                     }
                  });

此处,“setTimeout()”将为显示您的内容提供一些指定的时间延迟。

祝你有个美好的一天!

答案 1 :(得分:0)

http://jsbin.com/jatuju/edit?js,output

如果您使用的是计划旧的JavaScript,则可以使用XMLHttpRequest状态代码来确定是否成功