Какой Ajax класс юзаете вы?

Тема в разделе "Коммерческие", создана пользователем tonagra, 22 ноя 2006.

Информация :
Публиковать (для всех) нуленые версии, особенно от modulesgarden КАТЕГОРИЧЕСКИ не стоит. Тема мониторится оным разработчиком, а к нам приходят абузы которые нельзя игнорировать.
Статус темы:
Закрыта.
Модераторы: Amazko, Aste
  1. tonagra

    tonagra Создатель

    Регистр.:
    19 апр 2006
    Сообщения:
    16
    Симпатии:
    14
    Стал перед выбором класса для CMS'ски.
    Пока выбор остановился на Xajax.
    А что пользуете Вы? Что посоветуете? Может есть что-то более удобное и простое?
     
  2. StirolXXX

    StirolXXX Постоялец

    Регистр.:
    11 июн 2006
    Сообщения:
    80
    Симпатии:
    38
    +1 Хочется что-то нормальное и простое, т.к. пишу движок Торрент-Трекера и хочу туда всунуть AJAX...
     
  3. duke1999

    duke1999 Прохожие

  4. WebSpider

    WebSpider Постоялец

    Регистр.:
    21 ноя 2006
    Сообщения:
    82
    Симпатии:
    1
    Интересная ссылочка, думаю там есть нечто полезное.
     
  5. StirolXXX

    StirolXXX Постоялец

    Регистр.:
    11 июн 2006
    Сообщения:
    80
    Симпатии:
    38
    Уже поздно... :D Я украл AJAX из DataLife и доволен как слон - работает быстро и легко! :rolleyes:
     
    JSilver нравится это.
  6. JSilver

    JSilver Постоялец

    Регистр.:
    18 апр 2006
    Сообщения:
    107
    Симпатии:
    49
    Обидно блин, сам не додумался в скриптах с использованием аджакса посмотреть :confused:
     
  7. StirolXXX

    StirolXXX Постоялец

    Регистр.:
    11 июн 2006
    Сообщения:
    80
    Симпатии:
    38
    Выдать код?
     
  8. JSilver

    JSilver Постоялец

    Регистр.:
    18 апр 2006
    Сообщения:
    107
    Симпатии:
    49
    В студию! :)
    Я думаю, это не только мне время сэкономит.
     
  9. StirolXXX

    StirolXXX Постоялец

    Регистр.:
    11 июн 2006
    Сообщения:
    80
    Симпатии:
    38
    PHP:
    <script language="javascript" type="text/javascript" src="js/ajax.js"></script>
    <script type="text/javascript">
    function send(){

        var frm = document.mybonus;
        var bonus_type = '';

        for (var i=0;i < frm.elements.length;i++) {
            var elmnt = frm.elements[i];
            if (elmnt.type=='radio') {
                if(elmnt.checked == true){ bonus_type = elmnt.value; break;}
            }
        }

        var ajax = new tbdev_ajax();
        ajax.onShow ('');
        var varsString = "";
        ajax.requestFile = "mybonus.php";
        ajax.setVar("id", bonus_type);
        ajax.method = 'POST';
        ajax.element = 'ajax';
        ajax.sendAJAX(varsString);
    }
    </script>
    <div id="loading-layer" style="display:none;font-family: Verdana;font-size: 11px;width:200px;height:50px;background:#FFF;padding:10px;text-align:center;border:1px solid #000">
        <div style="font-weight:bold" id="loading-layer-text">Загрузка. Пожалуйста, подождите...</div><br />
        <img src="pic/loading.gif" border="0" />
    </div>
    <div id="ajax">
    <table class="main" width="550" border="1" cellspacing="0" cellpadding="5">
    <?
        $my_points = $CURUSER["bonus"];
        $res = mysql_query("SELECT * FROM bonus") or sqlerr(__FILE__,__LINE__);
        while ($arr = mysql_fetch_assoc($res)) {
            $id = $arr["id"];
            $bonus = $arr["name"];
            $points = $arr["points"];
            $descr = $arr["description"];
            $output .= "<tr><td><b>$bonus</b><br />$descr</td><td><center>$points&nbsp;/&nbsp;$my_points</center></td><td><center><input type=\"radio\" name=\"bonus_id\" value=\"$id\" /></center></td></tr>\n";
        }
    ?>
        <tr><td class="colhead">Тип бонуса</td><td class="colhead">Очки</td><td class="colhead">Выбор</td></tr>
        <form action="mybonus.php" name="mybonus" method="post">
    <?=$output;?>
            <tr><td colspan="3"><input type="submit" onClick="send(); return false;" value="Обменять" /></td></tr>
        </form>
    </table>
    </div>
    ajax.js:

    Код:
    function _get_obj_toppos(obj)
    {
    var top = obj.offsetTop;
    while( (obj = obj.offsetParent) != null )
    {
    top += obj.offsetTop;
    }
    return top;
    }
    function center_div()
    {
    this.divname = '';
    this.divobj  = '';
    }
    center_div.prototype.clear_div = function()
    {
    try
    {
    if ( ! this.divobj )
    {
    return;
    }
    else
    {
    this.divobj.style.display  = 'none';
    }
    }
    catch(e)
    {
    return;
    }
    }
    center_div.prototype.Ywindow = function()
    {
    var scrollY = 0;
    if ( document.documentElement && document.documentElement.scrollTop )
    {
    scrollY = document.documentElement.scrollTop;
    }
    else if ( document.body && document.body.scrollTop )
    {
    scrollY = document.body.scrollTop;
    }
    else if ( window.pageYOffset )
    {
    scrollY = window.pageYOffset;
    }
    else if ( window.scrollY )
    {
    scrollY = window.scrollY;
    }
    return scrollY;
    }
    center_div.prototype.move_div = function()
    {
    try
    {
    this.divobj = document.getElementById( this.divname );
    }
    catch(e)
    {
    return;
    }
    // Figure width and height
    var my_width  = 0;
    var my_height = 0;
    if ( typeof( window.innerWidth ) == 'number' )
    {
    my_width  = window.innerWidth;
    my_height = window.innerHeight;
    }
    else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
    {
    my_width  = document.documentElement.clientWidth;
    my_height = document.documentElement.clientHeight;
    }
    else if ( document.body && ( document.body.clientWidth || document.body.clientHeight ) )
    {
    my_width  = document.body.clientWidth;
    my_height = document.body.clientHeight;
    }
    this.divobj.style.position = 'absolute';
    this.divobj.style.display  = 'block';
    this.divobj.style.zIndex   = 99;
    var divheight = parseInt( this.divobj.style.Height );
    var divwidth  = parseInt( this.divobj.style.Width );
    divheight = divheight ? divheight : 50;
    divwidth  = divwidth  ? divwidth  : 200;
    var scrolly = this.Ywindow();
    var setX = ( my_width  - divwidth  ) / 2;
    var setY = ( my_height - divheight ) / 2 + scrolly;
    setX = ( setX < 0 ) ? 0 : setX;
    setY = ( setY < 0 ) ? 0 : setY;
    this.divobj.style.left = setX + "px";
    this.divobj.style.top  = setY + "px";
    }
    function tbdev_ajax(file){
    this.AjaxFailedAlert = "Ваш браузер не поддерживает расширенные возможности управления сайтом, мы настоятельно рекомендуем сменить браузер.\n";
    this.requestFile = file;
    this.method = "POST";
    this.URLString = "";
    this.encodeURIString = true;
    this.execute = false;
    this.loading_fired		= 0;
    this.centerdiv          = null;
    this.onLoading = function() { };
    this.onLoaded = function() { };
    this.onInteractive = function() { };
    this.onCompletion = function() { };
    this.onShow = function( message )
    {
    if ( ! this.loading_fired )
    {
    this.loading_fired = 1;
    // Change text?
    if ( message )
    {
    document.getElementById( 'loading-layer-text' ).innerHTML = message;
    }
    this.centerdiv         = new center_div();
    this.centerdiv.divname = 'loading-layer';
    this.centerdiv.move_div();
    }
    return;
    };
    this.onHide = function()
    {
    try
    {
    if ( this.centerdiv && this.centerdiv.divobj )
    {
    this.centerdiv.clear_div();
    }
    }
    catch(e)
    {
    }
    this.loading_fired = 0;
    return;
    };
    this.createAJAX = function() {
    try {
    this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (err) {
    this.xmlhttp = null;
    }
    }
    if(!this.xmlhttp && typeof XMLHttpRequest != "undefined")
    this.xmlhttp = new XMLHttpRequest();
    if (!this.xmlhttp){
    this.failed = true;
    }
    };
    this.setVar = function(name, value){
    if (this.URLString.length < 3){
    this.URLString = name + "=" + value;
    } else {
    this.URLString += "&" + name + "=" + value;
    }
    }
    this.encVar = function(name, value){
    var varString = encodeURIComponent(name) + "=" + encodeURIComponent(value);
    return varString;
    }
    this.encodeURLString = function(string){
    varArray = string.split('&');
    for (i = 0; i < varArray.length; i++){
    urlVars = varArray[i].split('=');
    if (urlVars[0].indexOf('amp;') != -1){
    urlVars[0] = urlVars[0].substring(4);
    }
    varArray[i] = this.encVar(urlVars[0],urlVars[1]);
    }
    return varArray.join('&');
    }
    this.encodeVAR = function(url){
    url = url.toString();
    var regcheck = url.match(/[\x90-\xFF]/g);
    if ( regcheck )
    {
    for (var i = 0; i < i.length; i++)
    {
    url = url.replace(regcheck[i], '%u00' + (regcheck[i].charCodeAt(0) & 0xFF).toString(16).toUpperCase());
    }
    }
    return escape(url).replace(/\+/g, "%2B");
    }
    this.runResponse = function(){
    eval(this.response);
    }
    this.sendAJAX = function(urlstring){
    this.responseStatus = new Array(2);
    if(this.failed && this.AjaxFailedAlert){
    alert(this.AjaxFailedAlert);
    } else {
    if (urlstring){
    if (this.URLString.length){
    this.URLString = this.URLString + "&" + urlstring;
    } else {
    this.URLString = urlstring;
    }
    }
    if (this.encodeURIString){
    var timeval = new Date().getTime();
    this.URLString = this.encodeURLString(this.URLString);
    //this.setVar("rndval", timeval);
    }
    if (this.element) { this.elementObj = document.getElementById(this.element); }
    if (this.xmlhttp) {
    var self = this;
    if (this.method == "GET") {
    var totalurlstring = this.requestFile + "?" + this.URLString;
    this.xmlhttp.open(this.method, totalurlstring, true);
    } else {
    this.xmlhttp.open(this.method, this.requestFile, true);
    }
    if (this.method == "POST"){
    try {
    this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
    } catch (e) {}
    }
    this.xmlhttp.send(this.URLString);
    this.xmlhttp.onreadystatechange = function() {
    switch (self.xmlhttp.readyState){
    case 1:
    self.onLoading();
    break;
    case 2:
    self.onLoaded();
    break;
    case 3:
    self.onInteractive();
    break;
    case 4:
    self.response = self.xmlhttp.responseText;
    self.responseXML = self.xmlhttp.responseXML;
    self.responseStatus[0] = self.xmlhttp.status;
    self.responseStatus[1] = self.xmlhttp.statusText;
    self.onCompletion();
    if(self.execute){ self.runResponse(); }
    if (self.elementObj) {
    var elemNodeName = self.elementObj.nodeName;
    elemNodeName.toLowerCase();
    self.onHide();
    if (elemNodeName == "input" || elemNodeName == "select" || elemNodeName == "option" || elemNodeName == "textarea"){
    if (self.response == 'error') { alert('Доступ отклонен'); } else {
    self.elementObj.value = self.response;
    }
    } else {
    if (self.response == 'error') { alert('Доступ отклонен'); } else {
    self.elementObj.innerHTML = self.response;
    }
    }
    }
    self.URLString = "";
    break;
    }
    };
    }
    }
    };
    this.createAJAX();
    }
    Разберешся?
     

    Вложения:

    • loading.gif
      loading.gif
      Размер файла:
      734 байт
      Просмотров:
      88
    CyberTm, pk2002, JSilver и ещё 1-му нравится это.
  10. JSilver

    JSilver Постоялец

    Регистр.:
    18 апр 2006
    Сообщения:
    107
    Симпатии:
    49
    Будут непонятки - буду смотреть DLE
     
Статус темы:
Закрыта.