ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Обработка форм с помощью Ajax
  #1  
Старый 14.02.2008, 17:27
Аватар для n3m0
n3m0
Участник форума
Регистрация: 11.05.2007
Сообщений: 149
Провел на форуме:
6373157

Репутация: 247
Отправить сообщение для n3m0 с помощью ICQ
Question Обработка форм с помощью Ajax

Собственно вопрос: У меня есть форма. при нажатии на кнопку идёт обработка формы на сервере, потом тудаже вместо текущей формы загружаются другие данные(ещё одна форма/ и так несколько раз). Т.е у меня пару формочек, и пользователь должен их заполнить по очерёдно.

Перегуглился и толкового не нашел.


А ещё. при обработке формы нужно чтобы выводился рисунок(какбы loading image) (пример на сайте хека.ру)

Знающих прошу показать пример, ибо от Ajax'a далёк

Последний раз редактировалось n3m0; 14.02.2008 в 17:43..
 
Ответить с цитированием

  #2  
Старый 14.02.2008, 18:04
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

Хек хек!

index.php
PHP код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>The Mafia - Undeground Security Private Community</title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <script src="http://www.xeka.ru/js/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">   function whois(domain)
   {
    $.post("whois.php", { domain: document.getElementById("domain").value },
   function(data)
   {
        document.getElementById("res").innerHTML = data;
   });
   }
</script>
    <script type="text/javascript">
    $(function(){    
        $('<img id="test" src="images/indicator.gif"/>') 
        .ajaxStart(function() {$(this).show();}) 
        .ajaxStop(function() {$(this).hide();}) 
        .appendTo('#res'); 
    }); 
    </script>
</head>
<body>
<?php
echo '<div id="main">';

echo 
'<form method="post" enctype="multipart/form-data"><table>
    <tr><td>Enter domain name:</td><td><input type="text" id="domain" /></td></tr>
    <tr><td>&nbsp;</td><td align="right"><input type="button" value="Lookup" onclick="whois()" /></td></tr>
    </table></form>'
;

echo 
'<div id="res"></div>';
echo 
'</div>';
?>
whois.php
PHP код:
<?php
<?php
    error_reporting
(0);

    if(
$_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')
    {
        function 
encode($str$type)
        {
            static 
$conv='';
            if (!
is_array $conv ))
            {
                
$conv=array ();
                for(
$x=128$x <=143$x++ )
                {
                  
$conv['utf'][] = chr(209).chr($x);
                  
$conv['win'][] = chr($x+112);
                }

                for( 
$x=144$x <=191$x++ )
                {
                       
$conv['utf'][] = chr(208).chr($x);
                       
$conv['win'][] = chr($x+48);
                }

                
$conv['utf'][] = chr(208).chr(129);
                
$conv['win'][] = chr(168);
                
$conv['utf'][] = chr(209).chr(145);
                
$conv['win'][] = chr(184);
             }
             if( 
$type=='w' )
                  return 
str_replace $conv['utf'], $conv['win'], $str );
             elseif( 
$type=='u' )
                  return 
str_replace $conv['win'], $conv['utf'], $str );
             else
                return 
$str;
        }

        function 
whois($domain)
        {
            
$dom explode("."$domain);

            if(
substr($domain04) == 'www.' && count($dom) >= 3)
            {
                
$domain substr($domain,4);
            }

            
$zone    strtolower($dom[count($dom) - 1]);

            if(!empty(
$zone))
            {
                
$error 0;
                if(
in_array($zone, array('de')))
                {
                    
$server "whois.denic.de";
                }
                else
                if(
in_array($zone, array('nl')))
                {
                    
$server "whois.domain-registry.nl";
                }
                else
                if(
in_array($zone, array('ru''su')))
                {
                    
$server "whois.ripn.net";
                }
                else
                if(
in_array($zone, array('com''net''edu')))
                {
                    
$server "whois.crsnic.net";
                }
                else
                if(
in_array($zone, array('org')))
                {
                    
$server "whois.publicinterestregistry.net";
                }
                else
                if(
in_array($zone, array('info')))
                {
                    
$server "whois.afilias.net";
                }
                else
                if(
in_array($zone, array('biz')))
                {
                    
$server "whois.neulevel.biz";
                }
                else
                if(
in_array($zone, array('cc')))
                {
                    
$server 'ccwhois.verisign-grs.com';
                }
                else
                if(
in_array($zone, array('nu')))
                {
                    
$server 'whois.nic.nu';
                }
                else
                if(
in_array($zone, array('us')))
                {
                    
$server 'whois.nic.us';
                }
                else
                if(
in_array($zone, array('ws')))
                {
                    
$server 'whois.website.ws';
                }
                else
                if(
in_array($zone, array('tv')))
                {
                    
$server 'tvwhois.verisign-grs.com';
                }
                else
                if(
in_array($zone, array('ua')))
                {
                    
$server 'whois.net.ua';
                }
                else
                {
                    
$error 2;
                }
            }
            else
            {
                
$error 1;
            }

            if(!empty(
$domain) && $error == 0)
            {
                
$fp fsockopen($server43, &$errno, &$errstr30);
                if(!
$fp)
                {
                    
$output $errstr." (".$errno.")<br>\n";
                }
                else
                {
                    
fputs($fp$domain."\n");
                    while(!
feof($fp))
                    {
                        
$output $output ereg_replace("\t"" "fgets($fp,128)) . "<BR>\n";
                    }
                    
fclose($fp);
                }
                
$output str_replace("<BR>\n"""$output);
                return 
"<textarea rows='20' cols='60'>".$output."</textarea>";
            }
            else
            if(
$error == 2)
            {
                return 
$output "<b>Ошибка:</b><br />1) Неверно задана зона <b>".htmlspecialchars(encode($zone))."</b> для домена ".htmlspecialchars(encode($domain))."<br/>2) В нашей базе нет информации по вашему домену<br>\n";
            }
            else
            if(
$error == 1)
            {
                return 
$output "Вы не ввели домен";
            }
        }

        if(
$_POST['domain'])
        {
            if(empty(
$_POST['domain']))
            {
                echo 
"<div align='center'><div class='error'>Заполните поле</div></div>";
            }
            else
            {
                echo 
whois(encode($_POST['domain']));
            }
        }
    }
?>
 
Ответить с цитированием

  #3  
Старый 14.02.2008, 18:21
Аватар для DIAgen
DIAgen
Познавший АНТИЧАТ
Регистрация: 02.05.2006
Сообщений: 1,191
Провел на форуме:
7364332

Репутация: 1276


По умолчанию

Isis если используешь jquery.js, изучи его функции (правда я только не давно сам изучил его полностью...)
PHP код:
<script src="http://www.xeka.ru/js/jquery.js" type="text/javascript"></script>
    <
script type="text/javascript">  
    function 
whois(domain) {
    $.
post("whois.php", { domain: $('#domain').attr('value') },
    function(
data) {
        $(
'#res').empty().append(data);
   });
   }
</
script
 
Ответить с цитированием

  #4  
Старый 14.02.2008, 18:35
Аватар для n3m0
n3m0
Участник форума
Регистрация: 11.05.2007
Сообщений: 149
Провел на форуме:
6373157

Репутация: 247
Отправить сообщение для n3m0 с помощью ICQ
По умолчанию

Спасибо Isis. я и надеялся на твою помощь

DIAgen, спасибо за исправление


Теперь такой вопрос: Форма обрабатывается. Но нужно сделать так. чтобы когда форма обработалась, в <div id="main"> помещалась ещё одна форма. И так несколько раз/ Т,е старая форма убиралась и помещалась новая

Там нужно использовать innerHTML для замены HTML кода?
Покажите пример

Последний раз редактировалось n3m0; 14.02.2008 в 18:38..
 
Ответить с цитированием

  #5  
Старый 14.02.2008, 18:41
Аватар для gibson
gibson
Moderator - Level 7
Регистрация: 24.02.2006
Сообщений: 447
Провел на форуме:
2872049

Репутация: 705
Отправить сообщение для gibson с помощью ICQ
По умолчанию

еще посмотри тут
http://myjoomla.ru/demo_ru/demonstratie.php

и вот тут есть примеры для
Цитата:
Т.е у меня пару формочек, и пользователь должен их заполнить по очерёдно.
http://xajaxproject.org/download.php
 
Ответить с цитированием

  #6  
Старый 14.02.2008, 18:44
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

DIAgen, мне больше понятен мой код и удобнее для меня..
На время работы никак влияет что означает что знать мне его более не надо
 
Ответить с цитированием

  #7  
Старый 14.02.2008, 18:53
Аватар для DIAgen
DIAgen
Познавший АНТИЧАТ
Регистрация: 02.05.2006
Сообщений: 1,191
Провел на форуме:
7364332

Репутация: 1276


По умолчанию

Где то приблизительно так
PHP код:
<script type="text/javascript">  
$(
'#main').empty().append('<form><!-- Сдесь твоя новая форма--></form>'); 
</
script
Этот скрипт вставь в текст который возвращается при AJAX
 
Ответить с цитированием

  #8  
Старый 14.02.2008, 18:57
Аватар для DIAgen
DIAgen
Познавший АНТИЧАТ
Регистрация: 02.05.2006
Сообщений: 1,191
Провел на форуме:
7364332

Репутация: 1276


По умолчанию

Цитата:
Сообщение от Isis  
DIAgen, мне больше понятен мой код и удобнее для меня..
На время работы никак влияет что означает что знать мне его более не надо
Ну это твое дело, просто сначало не привычно, зато потом на много лучше и быстре делается все

простой пример
PHP код:
document.getElementById("domain").value 
или так...
PHP код:
$('#domain').attr('value'

Последний раз редактировалось DIAgen; 14.02.2008 в 18:59..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
BookS: PHP, PERL, MySQL, JavaScript, HTML, ajax, Веб Дизайн M1nK0 PHP, PERL, MySQL, JavaScript 10 27.06.2009 21:35
Исследование удаленных хостов с помощью hping FraiDex Чужие Статьи 2 07.02.2008 18:36
Некорректная обработка в Ie форм с полями, содержащими экзотические символы k00p3r Чужие Статьи 0 10.06.2005 09:18
Взлом и защита Форм обратной связи sposobny АнтиАдмин 0 21.01.2005 22:48



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ