[JavaScript, AJAX] Задай вопрос, получи ответ

Discussion in 'PHP' started by banned, 9 Jun 2007.

Thread Status:
Not open for further replies.
  1. VDShark

    VDShark Elder - Старейшина

    Joined:
    1 Feb 2007
    Messages:
    260
    Likes Received:
    158
    Reputations:
    62
    Юзай поиск - я уже отвечал где то на этот вопрос, кажется даже в этой ветке.
     
    1 person likes this.
  2. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Code:
    <script type="text/javascript">
    
    function preload()  // preload('qwe.jpg', 'qwo.png', 'qwa.gif');
    {
      var i = arguments.length;
      while(i--) (new Image()).src = arguments[i];
    };
    
    </script>
     
    1 person likes this.
  3. Architek86

    Architek86 Elder - Старейшина

    Joined:
    20 Feb 2008
    Messages:
    80
    Likes Received:
    1
    Reputations:
    0
    Дан такой код:
    HTML:
    <div id="tema">
    <div class="eTitle">ляля</div><div class="eMessage">ляля</div>
    <div class="eTitle">ляля</div><div class="eMessage">ляля</div>
    <div class="eTitle">ляля</div><div class="eMessage">ляля</div>
    </div>
    
    Так вот... нужен скрипт, который бы выбирал отсюда рандомно любой div с классом eTitle и отображал только его с его содержимым (т.е. все другие дивы, как eTitle так и eMessage, скрывались). Как это сделать и возможно ли?
     
  4. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Code:
    <div id="tema">
      <div class="eTitle">1 eTitle</div><div class="eMessage">1 eMessage</div>
      <div class="eTitle">2 eTitle</div><div class="eMessage">2 eMessage</div>
      <div class="eTitle">3 eTitle</div><div class="eMessage">3 eMessage</div>
    </div>
     
    <script type="text/javascript">
    
    // :TODO: addEventListener/attachEvent
    
    window.onload = function()
    {
      var
      holder = document.getElementById('tema'),
      blocks = holder.getElementsByTagName('div'),
      l = blocks.length,
      a = [];
    
      while(l--)
      {
        blocks[l].style.display = 'none';
        if(blocks[l].className == 'eTitle') a.push(blocks[l]);
      }
    
      a[Math.floor(Math.random() * a.length)].style.display = 'block';
    };
    
    </script>
     
  5. nikolya

    nikolya New Member

    Joined:
    25 Apr 2008
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    Задача

    Уже писал задачу, но теперь требуется немного другое выполнение. Не понимаю правильную запись.
    Задача.
    Известны оценки по алгебре каждого ученика класса.Определить среднюю оценку. Сгенерировать случайным образом числа(оценки) 2,3,4,5. Вывести на экран около 15 оценок и вывести их среднее арифметическое.
     
  6. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    А что не получается?
     
  7. [R]eD

    [R]eD Elder - Старейшина

    Joined:
    1 Aug 2006
    Messages:
    72
    Likes Received:
    1
    Reputations:
    0
    Вобщем нужен примитивный пример работы аякса, имеем страницу ( zzz.php на ней ссылка, например,
    Code:
    <a href='xxx.php'>xx</a>
    ( внутри xxx.php: <?php echo '123'; ?> )
    нужно чтобы при нажатии на нее загружался файл xxx.php, а то что было в zzz.php убиралось и загружался xxx.php, без перезагрузки страницы то есть с использованием аякса..
    Думаю понятно объснил).

    Спасибо =)
     
  8. mouse.pro

    mouse.pro Elder - Старейшина

    Joined:
    6 Dec 2006
    Messages:
    113
    Likes Received:
    73
    Reputations:
    14
    Помогите пожалуйста скриптиком ajax, в общем суть скрипта такова:
    Заходим на сайт, видим пустое белое, черное, не важно какое, окно, где по середине пишется "Загрузка: 53%", и каждый раз эти проценты меняются, в зависимости на сколько загрузилась главная страничка, а после загрузки ("Загрузка: 100%") через 2-е секунды открывается полностью главная страничка, с загруженными картинками, элементами, текстами и т.п.
     
  9. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    mouse.pro, элементарный запрос в google:
    http://google.ru/?q=Ajax+loader+percent
     
    1 person likes this.
  10. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    http://www.alex-mryasov.ru/note/loader/
     
    1 person likes this.
  11. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Если сервер не будет успевать за секунду передать все данные, скрипт уйдёт в бесконечный цикл.
     
  12. mouse.pro

    mouse.pro Elder - Старейшина

    Joined:
    6 Dec 2006
    Messages:
    113
    Likes Received:
    73
    Reputations:
    14
    Я искал, не нашел того чего хочу.
     
  13. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Есть два возможных подхода:

    1) К обычной странице подключается скрипт, который каким-то образом должен отслеживать процесс загрузки. Но JS не может узнать полный размер кода/текста страницы раньше, чем она загрузится. (Или надо изменять серверную часть.) С картинками ещё можно что-нибудь придумать.

    2) Можно попробовать грузить всё через JS. При этом сама страница будет содержать только скрипт и, скажем, пустой блок. Соответственно поисковики и пользователи без JS ничего не увидят.

    Лично моё мнение: это подход флеша. Попадёшь на страницу, и не узнаешь, есть ли на ней нужная информация, пока всё не загрузится.
     
  14. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Лови js код при загрузке pro.mail.ru
     
  15. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    На pro.mail.ru просто функция (incPointsLoaded) вызывается в конце каждого скрипта:
    Code:
    function progressBarSize() {
    	if (!parseInt(pointsCount)) return;
    	//alert('1 : '+parseInt(pointsLoaded));
    	//alert('2 : '+parseInt(pointsCount));
    	//alert('3 : '+(parseInt(pointsLoaded)/parseInt(pointsCount)));
    	val = parseInt(100*parseInt(pointsLoaded)/parseInt(pointsCount));
    	var re=/^[0-9\+\-()\#, ]+$/;
    	var res = re.test(val);
    	if (!res) {
    		alert("Ошибка в значении прогресс-бара!");
    		gebi("persent").value = "";
    		return false;
    	}
    	if (val < 0) val = 0;
    	if (val > 100) val = 100;
    	if (gebi("resizeble")) {
    		parentWidth = gebi("resizeble").parentNode.offsetWidth;
    		gebi("resizeble").style.width = parentWidth * (val/100);
    	}
    }
    
    function incPointsLoaded(name) {
    	pointsLoaded = pointsLoaded+1; // Вообще круто
    	progressBarSize();
    }
    
    if (typeof(incPointsLoaded) == "function") incPointsLoaded('dropdown_script');
     
  16. mouse.pro

    mouse.pro Elder - Старейшина

    Joined:
    6 Dec 2006
    Messages:
    113
    Likes Received:
    73
    Reputations:
    14
    Загрузка на mail.ru понравилась, то что надо!
    Только вот я в ajax полный 0, как это все прикрутить к страничке? если не трудно напишите пожалуйста=)
     
  17. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Ещё раз - на pro.mail.ru не высчитывается процентное соотношение загруженного - просто там много отдельных файлов:
    Code:
    <script type="text/javascript" src="http://img.mail.ru/r/js/default_function.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/browser_versions.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/processing_events.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/dropdown_script.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/cookie_setup.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/debugger.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/resize_js.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/drag_and_drop.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/cols_resize.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/mailbox.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/scroll_eventer.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/dynamics.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/white_holes.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/letter_function.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/send_letter.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/context_menu.js"></script>
    <script type="text/javascript" src="http://img.mail.ru/r/js/hover_menu.js"></script>
    В конце каждого вызывается функция, просто увеличивающая полоску загрузки на определённую величину.
    Трудно, т.к. к коду придётся написать ещё и страницу.
     
  18. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    нужен скрипт такого типа...

    напр. есть форма а в ней тег селект с опциями мне нужно чтоб када пользователь выберет одну из опций ему вывадилась форма из файла(файл с названием опции)

    плз оч надо.. помогите а? с меня +++
     
  19. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Сделал на аяксе базовый пример, проверки уже и всё остальное легко дописать:

    Файл forms.htm:
    HTML:
    <html><body><script language='JavaScript'>
    function createHttpRequest()
    {
      var uagent=navigator.userAgent.toLowerCase();
      var is_win=((uagent.indexOf("win")!=-1) || (uagent.indexOf("16bit")!=-1));
      var is_opera=(uagent.indexOf('opera')!=-1);
      var is_webtv=(uagent.indexOf('webtv')!=-1);
      var is_safari=((uagent.indexOf('safari')!=-1) || (navigator.vendor=="Apple Computer, Inc."));
      var is_ie=((uagent.indexOf('msie')!=-1) && (!is_opera) && (!is_safari) && (!is_webtv));
    
      if(is_ie)
        httpRequest=new ActiveXObject("Microsoft.XMLHTTP");
      else
        httpRequest=new XMLHttpRequest();
    
      return httpRequest;
    }
    
    
    function sendRequest(file,params)
    {
      httpRequest.open('POST',file,true);
      httpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
      httpRequest.setRequestHeader("Content-length",params.length);
      httpRequest.setRequestHeader("Connection","close");
      httpRequest.onreadystatechange=getRequestx;
      httpRequest.send(params);
    }
    
    function getRequestx()
    {
      if(httpRequest.readyState==4)
      {
        document.getElementById("frm").innerHTML=httpRequest.responseText;
        document.getElementById("f").disabled=false;
      }
    }
    
    var httpRequest=createHttpRequest();
    
    
    function cf(name)
    {
      if(!name || (name!='form1.htm' && name!='form2.htm'))
      {
        document.getElementById("frm").innerHTML="Выберите форму";
        return;
      }
    
      document.getElementById("frm").innerHTML="Загрузка...";
      document.getElementById("f").disabled=true;
      sendRequest(name,'');
    }
    </script>
    Выберите форму:<br>
    <select onchange="cf(this.value)" id="f">
    <option>выберите</option>
    <option value="form1.htm">первая</option>
    <option value="form2.htm">вторая</option>
    </select>
    <hr>
    <div id="frm">
    Выберите форму
    </div>
    </body></html>

    Файл form1.htm:
    HTML:
    <form action='' method='post'>
    FORM 1: 
    <input type='text' name='aaa' value='bbb'>
    </form>
    

    Файл form2.htm:
    HTML:
    <form action='' method='post'>
    FORM 2: 
    <select><option>AAA</option><option>BBB</option>
    </form>
    
     
    #579 d_x, 19 May 2008
    Last edited: 19 May 2008
    1 person likes this.
  20. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    а как научить скрипт русскому языку? а то место русских букв квадратики оО
     
Thread Status:
Not open for further replies.