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

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

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

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    jquery slider
    jquery slidershow
    Вводишь в гугл и умиляешься результат поиска.
     
  2. geforse

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

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    PHP:
    <script id="xx" type="text/x-html-template"
    {{
    each(j,List) formattedList }}  
    {{if List.
    value == "1" }} 
    {{
    each(i,account) List.accounts }}
    ......
    Что это за язык ? Где о нём почитать ? Не могу нагуглить ничего толкового.
     
  3. CheatXX

    CheatXX New Member

    Joined:
    8 Jun 2009
    Messages:
    154
    Likes Received:
    2
    Reputations:
    0
    реально ли средствами js вывести пинг? т.е человек заходит на сайт, там как-то через js пингуется другой сервер и выводит на сайт какой пинг?
     
  4. barnaki

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

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    140
    Reputations:
    4
    можно через ajax вызывает php скрипт в котором написано
    PHP:
    $site =($_POST["site"]);exec (" ping $site",$output);echo "$output";
    $site надо передать.
     
  5. barnaki

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

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    140
    Reputations:
    4
    похоже на jquery template
     
  6. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    есть сайт построеный на фреймах.
    может кто помочь с формированием пользовательского js?
     
  7. 5w17ch3r

    5w17ch3r Member

    Joined:
    1 Dec 2008
    Messages:
    79
    Likes Received:
    11
    Reputations:
    0
    Подскажите кто-нибудь, вот есть такой код:
    HTML:
    jQuery(function(){
            jQuery('.more').change(function(){
                dt = jQuery('.more :selected').val();
        })
    });
    
    Но он работает только на первом списке .more.
    Как можно сделать так, что бы функция применялась ко всем спискам с классом "more", их количество не постоянно.
     
    #3267 5w17ch3r, 31 Jan 2012
    Last edited: 31 Jan 2012
  8. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
  9. 5w17ch3r

    5w17ch3r Member

    Joined:
    1 Dec 2008
    Messages:
    79
    Likes Received:
    11
    Reputations:
    0
    HTML:
    jQuery('.more').each(function() {
            jQuery(this).change(function(){
                    dt = jQuery('.more :selected').val();
            });
    }); 
    Так ни с одним элементом не работает...

    PS Я с JavaScript мало работаю, могу сильно тупить :)
     
    #3269 5w17ch3r, 31 Jan 2012
    Last edited: 31 Jan 2012
  10. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    вы круглую скобку потеряли в предпоследней строке
     
  11. 5w17ch3r

    5w17ch3r Member

    Joined:
    1 Dec 2008
    Messages:
    79
    Likes Received:
    11
    Reputations:
    0
    В скрипте она на месте, тут ошибся :)
     
  12. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    И без each()-а все работает, ниже простенький код
    Code:
    <!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>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    	<title>Some test</title>
    	<script type="text/javascript" src="jquery.js"></script>
    	<script type="text/javascript">
    	  $(document).ready (function () {
    	    $('.more').change (function () {
    	      alert ($(this).attr ('id') + ':' + $(this).val ());
    	    });
    	  });
    	</script>
    </head>
    <body>
    
    <form>
    
    <select class="more" id="select1">
      <option value="1">1</option>
      <option value="2">2</option>
    </select>
    
    <select class="more" id="select2">
      <option value="3">3</option>
      <option value="4">4</option>
    </select>
    
    <select class="more" id="select3">
      <option value="5">5</option>
      <option value="6">6</option>
    </select>
    
    </form>
    
    </body>
    </html>
    
     
    1 person likes this.
  13. 5w17ch3r

    5w17ch3r Member

    Joined:
    1 Dec 2008
    Messages:
    79
    Likes Received:
    11
    Reputations:
    0
    Да, спасибо, все заработало. Надо было еще заменить dt = jQuery('.more :selected').val(); на dt = jQuery(this).val();
     
  14. 5w17ch3r

    5w17ch3r Member

    Joined:
    1 Dec 2008
    Messages:
    79
    Likes Received:
    11
    Reputations:
    0
    Вот еще такой вопрос. Есть функция:
    Code:
    function pinger() {
        btn = document.getElementById('pinger');
        btn.innerHTML = '<img src="loading.gif"/>';
        if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {        
            
            xmlHttp.open("GET", "ping.php", true);
            xmlHttp.onreadystatechange = getResult();
            
            xmlHttp.send(null);
        } else {
            btn.innerHTML = '<img src="err.png"/>';
        }
    }
    
    Вызываемая функция getResult показывает readyState равный 1(нужно 4). Почему так?
     
  15. scanislav

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

    Joined:
    25 Jun 2010
    Messages:
    87
    Likes Received:
    22
    Reputations:
    31
    getResult() должен сначала вызваться с readyState=1 , потом 2 итп пока не дойдет до 4.
    В этот момент хорошо бы проверить еще status, чтоб был 200
     
  16. 5w17ch3r

    5w17ch3r Member

    Joined:
    1 Dec 2008
    Messages:
    79
    Likes Received:
    11
    Reputations:
    0
    Ну статус проверяется, а вот как сделать смену readyState? Сама функция сейчас выглядит так:
    Code:
    function getResult() {
     if (xmlHttp.readyState == 4) {
            if (xmlHttp.status == 200) {
                xmlResponse = xmlHttp.responseXML;
                xmlDocumentElement = xmlResponse.documentElement;
                output = xmlDocumentElement.getElementById('response').value();
    
                if (output === 'OK') {
                    document.getElementById("pinger").innerHTML = output;
                }
                else {
                    document.getElementById("pinger").innerHTML = '<img src="err.png"/>';
                }
            } else {
                alert("Error: " + xmlHttp.StatusText);
            }
        }
    }
    
     
  17. 5w17ch3r

    5w17ch3r Member

    Joined:
    1 Dec 2008
    Messages:
    79
    Likes Received:
    11
    Reputations:
    0
    Переписал полностью обе функции в одну, теперь все работает. Хотелось бы услышать отзывы что не так или что стоит переделать, а то с javascript'ом я почти не работал.
    Code:
    function pinger() {
        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                document.getElementById('pinger').innerHTML = xmlHttp.responseText;
            }
        }
        xmlHttp.open('GET','ping.php',true);
        xmlHttp.send(null);
        document.getElementById('pinger').innerHTML = xmlHttp.responseText;
    }
    
     
  18. scanislav

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

    Joined:
    25 Jun 2010
    Messages:
    87
    Likes Received:
    22
    Reputations:
    31
    Выделенная строчка не нужна. В responseText все равно ничего не будет.
    А так совершенно кошерный ajax.
     
    1 person likes this.
  19. 5w17ch3r

    5w17ch3r Member

    Joined:
    1 Dec 2008
    Messages:
    79
    Likes Received:
    11
    Reputations:
    0
    scanislav, responseText содержит вывод вызываемого php-скрипта
    (upd а, нет. совершенно верно, я не прав :) )

    Еще вопрос:
    Code:
    jQuery(".shadow_box").fadeIn();
    
    Как применить тот же эффект к первому дочернему элементу shadow_box'а с id "drop_box"?
     
    #3279 5w17ch3r, 6 Feb 2012
    Last edited: 8 Feb 2012
  20. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Сам сделал..
     
    #3280 Fepsis, 6 Feb 2012
    Last edited: 7 Feb 2012
Thread Status:
Not open for further replies.