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

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

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

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Возникла необходимость использовать AJAX, но с ним я никогда дел не имел :(

    Есть страница:
    HTML:
    <html>
    <a name="pic"><img src="/i/pic/47.jpg" /></a>
    <table>
    	<tr>
    	<td><a href="?id=26#pic"> <img src="/i/pic/sml/26.jpg" /></a></td>
    	<td><a href="?id=28#pic"> <img src="/i/pic/sml/28.jpg" /></a></td>
    	<td><a href="?id=30#pic"> <img src="/i/pic/sml/30.jpg" /></a></td>
    	<td><a href="?id=31#pic"> <img src="/i/pic/sml/31.jpg" /></a></td>
    	<td><a href="?id=32#pic"> <img src="/i/pic/sml/32.jpg" /></a></td>
    	<td><a href="?id=34#pic"> <img src="/i/pic/sml/34.jpg" /></a></td>
    	</tr>
    	<tr>
    	<td><a href="?id=38#pic"> <img src="/i/pic/sml/38.jpg" /></a></td>
    	<td><a href="?id=41#pic"> <img src="/i/pic/sml/41.jpg" /></a></td>
    	<td><a href="?id=44#pic"> <img src="/i/pic/sml/44.jpg" /></a></td>
    	<td><a href="?id=47#pic"> <img src="/i/pic/sml/47.jpg" /></a></td>
    	<td><a href="?id=48#pic"> <img src="/i/pic/sml/48.jpg" /></a></td>
    	<td>&nbsp;</td>
    	</tr>
    </table>
    </html>
    Т.е. кликая по маленькому изображению в таблице мы получаем большую картинку над таблицей.
    Как можно реализовать загрузку этого большого изображений AJAX'ом?
     
  2. diGriz

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

    Joined:
    11 Oct 2006
    Messages:
    138
    Likes Received:
    82
    Reputations:
    6
    2 Gray_Wolf
    Например, с помощью lightbox или аналогичных плагинов.

    http://jsimagebox.ru/
     
  3. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Это несовсем то, что я ищу.
    Мне нужен AJAX для ускорения работы, а не для пафоса...

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

    Ser_UFL New Member

    Joined:
    8 Oct 2007
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    Актуально, помогите плз.
    http://forum.antichat.ru/showpost.php?p=1506377&postcount=1809
     
    #1784 Ser_UFL, 9 Sep 2009
    Last edited: 9 Sep 2009
  5. FireFenix

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

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    За тебя никто ничего делать не будет... твои вопросы - самая основа программирования и ничего сверхъестественного.... тебе нужно? - значит читай книги и изучай программирование.....
    Книги можно найти в разделе Book или у www.google.ru

    Нафиг те аякс? Грузи в скрытые дивы или в JS создавай объект Image, делай предзагрузку и выводи на экран

    Как это реализовывается? - google.ru -> предзагрузка картинок
     
  6. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Вот один из вариантов:
    HTML:
    <script type="text/javascript">
    var flag = 1;
    function t(){
       if (flag == 1) N.style.left = "250px";
       if (flag == 2) N.style.left = "100px";
       if (flag == 3) N.style.left = "200px";
       flag = flag + 1;
       if (flag == 4) flag = 1;
       }
    function al()
       {alert(" иначе и быть не могло! ")}
    </script>
    <style type="text/css">
    	#center{
    	position: relative;
    	width:100px;
    	height:100px;
    	margin: auto;
    	absolute;
    	margin:-50px -50px 0;
    	top:50%;
    	left:50%;
    	}
    </style>
    <div id="center">
    Вам понравился наш сайт?<br />
    <button onclick="al()">Да</button>
    <button style="position: relative; left: 40px;" onmouseover="t()" id="N">Нет</button></a>
    </div>
    
    Ну или скрипт можно повесить попроще:
    HTML:
    <script type="text/javascript">
    function t(){
    N.style.left = Math.floor(Math.random()*151);
    N.style.top = Math.floor(Math.random()*151);
       }
    function al()
       {alert(" иначе и быть не могло! ")}
    </script>
    
     
    #1786 Gray_Wolf, 10 Sep 2009
    Last edited: 10 Sep 2009
    1 person likes this.
  7. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    замените функцию t() на ту что я написал во втором скрипте.
    Это вы намекаете что кто-то уже придумал генератор "истинно случайных чисел"?
     
  8. Flcn

    Flcn Member

    Joined:
    6 Jul 2009
    Messages:
    56
    Likes Received:
    6
    Reputations:
    0
    эм.. есть банальный вопрос.. как узнать цвет определённой точки на экране? (window)
    а то склероз одаллел.. а гугль не помог..
     
  9. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Как бы JavaScript сам по себе не может делать подобного...

    Как вариант, можно при загрузке изображения в PHP создавать матрицу цветов пикселей, а потом при наведении выводить результат ТуллТипом...
     
  10. Flcn

    Flcn Member

    Joined:
    6 Jul 2009
    Messages:
    56
    Likes Received:
    6
    Reputations:
    0
    эт печально =(
    а то у меня банально есть куча фигурок и надо бы узнать их rgb..

    пробовал через матрицу на яваскрипте.. но это было фатально для скорости
     
  11. FireFenix

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

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    Если пишешь типа игры.... то что мешает цвет задавать для каждой фигурки? и при наведении выводить это свойство
     
  12. Flcn

    Flcn Member

    Joined:
    6 Jul 2009
    Messages:
    56
    Likes Received:
    6
    Reputations:
    0
    FireFenix
    у меня всё немного подругому.
    в общем если упростить то у меня на экране появляются х (100) квадратов. у каждого рандомный цвет и рандомная длинна (до 100), ну и положение.. всё на ООП. каждый квадрат эт объект... охото чтоюы квадраты не появлялись друг на друге. тоесть надо надо брать всю площадь будующего квадрата и смотреть нет ли там чего инородного.. сначало была матрица of boolean но она шибко всё грузила.... а щас хотелосьбы сделать так что после получением рандомных координат/размеров я в цикле быстро проверял эту область на цвет не равный какойнить пересенно backCol и тд.. видимо придётся про это забыть )
     
  13. FireFenix

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

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    предположим каждый квадрат - элемент таблицы/див с id="quad_n" где n это его номер n = [1,100] (размер 10*10) с параметром "background:#цвет"

    obj = getElementById('quad_' + n);

    1) При наведении мышкой отлавливаем позицию window.event.clientY и window.event.clientX, получаем obj.offsetTop и obj.offsetLeft (если вложено - то прибавляем смещение вложений)
    потом если курсор находится в области квадратика, то выдаём obj.style.background

    2) Как вариант - навесить на каждый квадратик onClick и передавать имя элемента и потом выводить уже свойство через функу по имени объекта
    типа :
    Code:
    <script>
    
      function my_color(name)
      {
        var obj = document.getElementById(name);
        alert(obj.style.color);
        
        //также можно добавить ещё требухи
        //или если нужен тока цвет..... 
        //можно вызывать как onClick="javasciprt:alert(this.style.background);"
      }
    
    </script>
    <div id="quad_1" style="background:blue" onClick="javascript:my_color(this.id)">Я синий</div>
    <div id="quad_2" style="background:red" onClick="javascript:my_color(this.id)">Я красный</div>
    <div id="quad_3" style="background:green" onClick="javascript:my_color(this.id)">Я зелёный</div>
    
    Естесно я показал не квадратики.... но главное смысл! =)
     
    #1793 FireFenix, 10 Sep 2009
    Last edited: 10 Sep 2009
  14. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    2Flcn а если сохранять все координаты в 3-х мерном массиве (x,y,h) и рекурсивно проверять место куда собираетесь добавить новый квадрат...
    Т.е. если у нас есть что-то вроде:
    PHP:
    <?php
    function addSquare($id)
        {
        
    $x=rand;
        
    $y=rand;
        
    $h=rand(1,100);
        if (
    checkCoords($x,$y,$h)) $squares[$id] = new square($x,$y,$h);
        }
    ?>
    То функция checkCoords() лезет в глобальный массив с координатами всех предыдущих квадратов и проверяет нет ли пересечений...
     
  15. Ser_UFL

    Ser_UFL New Member

    Joined:
    8 Oct 2007
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    Спасибо за совет. Где искать книги, я знаю. Я попытался переделать по примерам других скриптов, но у меня не вышло. Поэтому я написал готовый скрипт и попросил лишь немного его переделать. Кто-то на этом собаку съел и для них это дело нескольких минут, учитывая, что задача несложная. А изучать JS к сожалению нет времени. Всё-таки надеюсь на помощь.
     
  16. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Ser_UFL,
    Code:
    <script type="text/javascript">
    
    function steamIdToLink(steamId)
    {
      var
        parts  = steamId.split(':'),
      
        server = +parts[1],
        authId = +parts[2],
    
        profile = [7656119, 7960265728 + authId * 2 + server].join('');
      
      return '<a href="http://steamcommunity.com/profiles/' + profile + '">'
              + steamId +
             '</a>';
    };
    
    document.writeln( steamIdToLink('STEAM_0:1:12345678') );
    
    </script>
     
    1 person likes this.
  17. Ser_UFL

    Ser_UFL New Member

    Joined:
    8 Oct 2007
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    astrologer, благодарю. Всё отлично.
     
  18. AVIRA

    AVIRA New Member

    Joined:
    12 Aug 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    кто подскажет как зставвить это работать?

    Code
    <script language='JavaScript'>**
    for (i=0; i < document.links.length; i ++) {**
    str=document.links.href;**
    str = str.replace(/87.119./ig,"85.237.");**
    document.links.href = str;**
    }**
    Tagstr = document.getElementsByTagName('a');**
    for (n=0; n<Tagstr.length; n ++){**
    str = Tagstr[n].innerHTML;**
    str = str.replace(/87.119./ig,"85.237.");**
    Tagstr[n].innerHTML = str;**
    }**
    </script>
     
  19. FireFenix

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

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    убрать звёздочки?
     
  20. Большой джо

    Joined:
    28 Jun 2009
    Messages:
    51
    Likes Received:
    2
    Reputations:
    0
    Code:
    <html>
    <head>
    <script language="javascript">
    function getXmlHttp(){
        try {
            return new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                return new ActiveXObject("Microsoft.XMLHTTP");
            } catch (ee) {
            }
        }
        if (typeof XMLHttpRequest!='undefined') {
            return new XMLHttpRequest();
        }
    }
    function request(url) { 
        var xmlhttp = getXmlHttp();
        xmlhttp.open('GET', url);
        xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4){document.getElementById('incl').innerHTML=xmlhttp.responseText;}
        }
        xmlhttp.send(null);
    }
    </script>
    </head>
    <body>
    <div id="incl"></div>
    <input type=button onclick=request('http://test.ru') value="Press">
    </body>
    </html>
    
    не как не могу понять в чём проблема, по идее, должен быть запрос на test.ru, и поулчить от туда инфу, а идёт запрос без возврата данных, хрень какая то
     
Thread Status:
Not open for further replies.