程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> SMS移動短信接口二次開發中的插入多行記錄操作(含實時進度顯示

SMS移動短信接口二次開發中的插入多行記錄操作(含實時進度顯示

編輯:關於PHP編程

本來這個CP是單發的SMS接口,由於種種原因需要實現群發,每次編輯一條信息,群發網站所有會員(上萬條會員記錄),程序難點在從MYSQL到MSSQL不同數據庫服務器間萬行記錄記錄插入更新,並實時發送進度顯示,反饋發送後的結果。

在短信發送過程中有以下幾個要求:

   1)不允許出現程序超時現象; 2)自動檢測手機號碼的合法性;3)計算發送的進度比例;

   4)從MYSQL到MSSQL不同數據庫服務器間萬行記錄記錄插入更新,SQL語句不超負荷;

簡單描述解決方法:

利用JQ 中一個AJAX腳本 遞交 發送短信記錄申請,程序讀取申請記錄,用SESSION記錄下進度數據,根據每次發送的條數,返回記錄中的未發送短信的手機號碼,發送程序之前加手機合法性驗證。AJAX接受到第一次返回記錄數據,將手機號碼提交給一個遞歸函數,再在函數中重復遞交剩余的手機號碼,直到進度為100%。

不知道我又沒有說明白,參考代碼如下:

function send_onesms(s,p,sendid){ //這個是第一個AJAX發送
if (sendid==){
$.prompt(你還沒有選擇要發送的短信?,{buttons:{確定:true}});
return false;
}
var totel = ;
    $(#loading).show();
    $.ajax({
     timeout: 36000,
     type: "GET",
     url: "/admincp/page.php",
     data:   "showtype=2&page="+p+&sendid=+sendid,
     beforeSend: function(){
      $.ajax({async:true,url: "/admincp/jindu.php?act=clear&rnd="+new Date().getTime(), success: function(response){$("#jindu").html(response);}, dataType: "html"});
        $(a.sendclass).html(鎖定狀態).removeAttr("onclick");
        $(#sid+sendid).html(發送中...).removeAttr("onclick");
     },
     success: function(msg){
       $(#i2page).val=p;
       //$(#smslist).html(unescape(msg));
       //$(#loading).hide();
       if (msg!=over){
        totel = msg;
       // setInterval(function() { $.ajax({async:true,url: "/admincp/jindu.php?rnd="+new Date().getTime(), success: function(response){$("#jindu").html(response);}, dataType: "html"}) },1000);
       }
      
      }
    });
    send_sms(s,p,sendid,totel);
    //window.clearInterval(thread);
}

function send_sms(s,p,sendid,totel){ //一個遞歸函數
$.ajax({
     timeout: 36000,
     dataType: "html",
     type: "POST",
     url: "/admincp/page.php?rnd="+new Date().getTime(),
     data:   "showtype=2&page="+p+&sendid=+sendid+&totel=+totel,
     success: function(response){
       if (response!=over){
         $.ajax({async:true,url: "/admincp/jindu.php?rnd="+new Date().getTime(), success: function(response){$("#jindu").html(response);}, dataType: "html"});
        setTimeout(send_sms(s,p,sendid,response),1000);
       }else{
        $.ajax({async:true,url: "/admincp/jindu.php?act=over&rnd="+new Date().getTime(), success: function(response){alert(response);}, dataType: "html"});
        $(#loading).hide();
          menu_sec2_move(p);
       }
     }

});

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved