title: jQuery AJAX solution inside each() loop
body: <p>I have noticed that I'm having problems when I'm using AJAX in jQuery inside a .each() loop. Only the first record in my database are being updated when the script executes.</p>
  
  <p>Here's my script:</p>
  
  <pre><code>function save(){
              var _userTypeId;
              var _userTypeName;
              var _isDeleted;
              var request;
  
              $("tr.recUserType").each(function(){
                  $this = $(this);
                  _userTypeId = $this.find("#userTypeId").html();
                  _userTypeName = $this.find("#userTypeName").val();
                  _isDeleted = $this.find("#isDeleted").val();
  
                  request = $.ajax({
                      url: "save.php",
                      type: "POST",
                      data: {userTypeId: _userTypeId, userTypeName: _userTypeName, isDeleted: _isDeleted}
                  });
              });
  
              request.done(function(){
                  document.location.reload();
              });
  
              request.fail(function(){
                  alert("Request Failed!");
              });
          }
  </code></pre>
  
  <p>And the contents of save.php:</p>
  
  <pre><code>&lt;?php
  include_once "globals.php";
  
  dbConnect();
  
  $isExisting = mysql_query("SELECT COUNT(userTypeId) AS userCount FROM userType WHERE userTypeId='".$_POST['userTypeId']."';");
  
  $result = mysql_fetch_array($isExisting);
  
  //original: if(!$result['userCount'] = 0) &lt;-- This was a logical error
  if($result['userCount'] != 0)
      mysql_query("UPDATE userType SET userTypeName='".$_POST['userTypeName']."', isDeleted='".$_POST['isDeleted']."' WHERE userTypeId='".$_POST['userTypeId']."';");
  else
      mysql_query("INSERT INTO userType VALUES('', '".$_POST['userTypeName']."', '".$_POST['isDeleted']."');");
  
  echo mysql_error();
  
  dbClose();
  ?&gt;
  </code></pre>
  
  <p>I have read that I have the option to use synchronous instead of asynchronous, but I have also read it is not a good practice.</p>
  
  <p>So how do I actually get this done asynchronously and fix the problem?</p>