I am trying to process internal messaging via ajax using an interval to slow down queries as they can sometimes be in the hundreds. My code, however, always submits the same form data, even tho the id is automatically incremented via a for() loop.
Here is my HTML:
<form id="form" action="index.php" method="post">
<input type="hidden" id="users" value="2|5|7|8|20" />
<div class="form-group">
<label>Message:</label>
<textarea name="message" id="msg" class="form-control" rows="5"></textarea>
</div>
<button type="submit" class="btn btn-info">Send Message</button>
</form>
Here is my jQuery code:
$("#form").submit(function(e){
e.preventDefault();
var str = $('#users').val();
var message = $('#msg').val();
var strArr = str.split('|');
for(i=0; i < strArr.length; i++){
var myId = strArr[i];
var formdata = "action=messaging_text&id="+myId+"&message="+message+"";
var timerId = 0,
timerId = setInterval(function(){
$.ajax({
type: "POST",
url: 'index.php',
data: formdata,
dataType: 'json'
}).done(function(mydata) {
$("#status").append("Sent Text Message to <span style=\"color:green\">"+mydata.name+"</span><br>");
clearInterval(timerId);
});
}, 6000);
}
});