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

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

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

    Ser_UFL New Member

    Joined:
    8 Oct 2007
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    Ситуация очень нестандартная.
    Это для WebMod-а (плагин к MetaMod-у для CS 1.6).
    Соответственно, никаких пхп/перл/етк нет.
    Файл хранится на сервере. Его я выдираю с помощью средств Вебмода.
    Выглядит это следующим образом (на примере файла конфигурации server.cfg):
    Code:
    {<<{W.moddir}\server.cfg}
    Соответственно в textarea я вставляю так:
    Code:
    <textarea id="text" rows=25 cols=100 readonly>
    	{<<{W.moddir}\server.cfg}
    </textarea>
    
    А на стороне клиента получаю содержимое файла server.cfg в тегах textarea.
     
    #1741 Ser_UFL, 22 Aug 2009
    Last edited: 22 Aug 2009
  2. Ser_UFL

    Ser_UFL New Member

    Joined:
    8 Oct 2007
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    именно
    можно, но почему-то когда я пишу именно так, как вы предлагаете, не происходит никакой реакции.

    Возьмем файл 1.cfg следующего содержания:

    Вставка {<<{W.moddir}\1.cfg} в ваш скрипт равносильна, что я сделаю так:
    Code:
    <textarea id="text" rows="25" cols="100" readonly></textarea>
    <script language="javascript">
    
    var text = '// This file is overwritten whenever you change your user settings in the game.
    // Add custom configurations to the file "userconfig.cfg".
    
    unbindall
    bind "TAB" "+showscores"
    bind "ENTER" "+attack"
    bind "ESCAPE" "cancelselect"
    bind "SPACE" "+jump"
    bind "'" "+moveup"
    bind "*" "amx_votemapmenu"
    bind "+" "hlg_menu 895623"
    bind "," "buyammo1"
    bind "-" "amx_statscfgmenu"
    bind "." "buyammo2"
    bind "/" "+movedown"
    bind "0" "slot10"
    bind "1" "slot1"
    bind "2" "slot2"
    bind "3" "slot3"
    bind "4" "slot4"
    bind "5" "slot5"
    bind "6" "slot6"
    bind "7" "slot7"
    bind "8" "slot8"
    bind "9" "slot9"';
    
    var elem = document.getElementById('text');
    var length = 3; //3 строчки с конца
    
    var pos1 = text.length;
    var pos2 = text.length;
    
    for (i = 0; i < length; i++)
    \{
      pos1 = text.lastIndexOf("\r\n", pos2);
      
      if (pos1 < 0)
      \{
        elem.value = text.substring(0, pos2 + 2) + "\r\n" + elem.value;
        break;
      } else \{
        elem.value = text.substring(pos1 + 2, pos2 + 2) + "\r\n" + elem.value;
      }
      
      pos1 -= 2;
      pos2 = pos1;
    }
    
    </script>
    А если я делаю так, то опять же ничего не происходит
     
  3. Ser_UFL

    Ser_UFL New Member

    Joined:
    8 Oct 2007
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    Теперь внутри textarea отображается весь файл в одну строку...

    Насчет этого не волнуйтесь, на JS не влияет. Проверено.
     
  4. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    Как написать скрипт подсказок..
    Нужно чтобы при заходе на сайт появлялась подсказка (не при наведении) например перед ссылкой регистрации а там было написано например (для начала работы зарегистрируйтесь.)
    а через 10 секунд она исчезала и в другом месте появлась другая подсказка.

    (подсказка в стиле как у винды внизу у часов со стрелкой на ссылку,кнопку,картинку)

    Где-то видел на сайте но немогу найти((((
    Сам рыл рыл,но т.к не знаю javascript это осложняет дело.
     
  5. Ser_UFL

    Ser_UFL New Member

    Joined:
    8 Oct 2007
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    Хотя, стоп... в IE6
    В браузерах на движке WebKit (Safari, Maxthon3, GoogleChrome), Mozilla и Opera всё нормально.

    Помогите додумать для IE6

    P.S. Еще заметил пару косяков:
    1. Такие символы как < > & стали заменяться на utf-коды, соответственно на &lt; &gt; &amp; С чего вдруг?
    2. WebKit браузеры и Mozilla вконце textarea дописывают:
    Code:
    </value></key></plugin></plugin></plugin></plugin></plugin></plugin></plugin></plugin></plugin></name></arguments></command></plugin></plugin></plugin></plugin></plugin></plugin></plugin></plugin></plugin></name></arguments></command>
    Opera вставляет содержание самого скрипта, т.е. внутри textarea вконце дописывает:
    Code:
    <TEXTAREA id="text" rows="25" cols="100" readonly="">
    </TEXTAREA>
    <SCRIPT language="JavaScript" type="text/javascript">
    
    var separator = "\n"; //или \r\n
    var text = document.getElementById('main').innerHTML;
    
    var elem = document.getElementById('text');
    var length = 200; //3 строчки с конца
    
    var pos1 = text.length;
    var pos2 = text.length;
    
    for (i = 0; i <= length; i++)
    {
      pos1 = text.lastIndexOf(separator, pos2);
      
      if (pos1 < 0)
      {
        elem.value = text.substring(0, pos2 + separator.length) + "\r\n" + elem.value;
        break;
      } else {
        elem.value = text.substring(pos1 + separator.length, pos2 + separator.length) + "\r\n" + elem.value;
      }
      
      pos1 -= separator.length;
      pos2 = pos1;
    }
    
    </SCRIPT>
    
    В IE6, хоть и в одну строку, но без этого.
     
    #1745 Ser_UFL, 22 Aug 2009
    Last edited: 22 Aug 2009
  6. Ser_UFL

    Ser_UFL New Member

    Joined:
    8 Oct 2007
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    Спасибо за помощь.
    К сожалению оказалось, что в данной ситуации мою проблему этот способ не решит.
    Жаль, что выяснить это можно было только после тестирования.
    Придется действовать совершенно другим путём, при помощи AMXModX.
    Но скрипт мне очень пригодится в дальнейшем, я даже уже придумал где, еще раз thx !
     
  7. Player#1

    Player#1 Member

    Joined:
    11 Nov 2008
    Messages:
    95
    Likes Received:
    35
    Reputations:
    10
    Всем привет!

    Есть форма:
    HTML:
    <form action="" method="post" id="form">
    Field1<input id="fld1" type="text" value="val1" /><br />
    Field2<input id="fld2" type="text" value="val2" /><br />
    Field3<input id="fld3" type="text" value="val3" /><br />
    </form>
    Необходимо получить при помощи JS строку такого вида: fld1=val1&fld2=val2&fld3=val3
    Т.е. фактически сформировать данные, которые будут отосланы через пост.

    Конечно, можно вручную брать id и value каждого поля в отдельности, но количество полей гораздо больше чем 3. Поэтому надо как-то в цикле собирать id и значения полей.
     
  8. [Raz0r]

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

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    Code:
    var inputs = [];
    var el = document.forms[0].elements;
    for(var i=0; i<el.length;i++){
    if(el[i].type!="text") continue;
    inputs.push(el[i].name + "=" + el[i].value);
    }
    alert(inputs.join("&"));
    только id замени на name
     
    1 person likes this.
  9. diGriz

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

    Joined:
    11 Oct 2006
    Messages:
    138
    Likes Received:
    82
    Reputations:
    6
    Можно еще так, с помощью jQuery

    Code:
    $(function() {
                $('#myLink').click(function() {
    	    var str ="";
                $('#form input').each(function(n, element){
    	    if($(element).attr('type') == "text"){ str = str + $(element).attr('id')+ "=" + $(element).val() + "&";}});
    	   alert(str);
            });
        });
    
     
  10. dr.Web

    dr.Web Member

    Joined:
    2 Feb 2009
    Messages:
    7
    Likes Received:
    22
    Reputations:
    10
    как сделать переадресацию на другую страницу после того как получили ответ от скрипта??
    допустим
    Code:
    
    
    
    <script>
    function getXmlHttp(){
      var xmlhttp;
      try {
        xmlhttp = new ActiveXObject(\"Msxml2.XMLHTTP\");
      } catch (e) {
        try {
          xmlhttp = new ActiveXObject(\"Microsoft.XMLHTTP\");
        } catch (E) {
          xmlhttp = false;
        }
      }
      if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
        xmlhttp = new XMLHttpRequest();
      }
      return xmlhttp;
    }
    
    
    // javascript-код голосования из примера
    function quick_login() {
        // (1) создать объект для запроса к серверу
        var req = getXmlHttp()  
     
            // (2)
        // span рядом с кнопкой
        // в нем будем отображать ход выполнения
        var statusElem = document.getElementById('status') 
     
        req.onreadystatechange = function() {  
            // onreadystatechange активируется при получении ответа сервера
     
            if (req.readyState == 4) { 
                // если запрос закончил выполняться
     
               // statusElem.innerHTML = req.statusText // показать статус (Not Found, ОК..)
     
                if(req.status == 200) { 
                     // если статус 200 (ОК) - выдать ответ пользователю
                    statusElem.innerHTML = req.responseText;
                }
                // тут можно добавить else с обработкой ошибок запроса
            }
     
        }
     var emeil = escape(document.forms.login.email.value);
     var pass = escape(document.forms.login.pass.value);
           // (3) задать адрес подключения
    	   
    	   
        req.open('GET', 'index.php?email='+emeil+'&pass='+pass, true);  
     
        // объект запроса подготовлен: указан адрес и создана функция onreadystatechange
        // для обработки ответа сервера
     
            // (4)
        req.send(null);  // отослать запрос
     
            // (5)
        statusElem.innerHTML = '' ;//ожидаем ответ
    	}</script>
    
    
    
    допустим скрипт ответил на запрос еденичку.как сделать переадресацию??
     
  11. dr.Web

    dr.Web Member

    Joined:
    2 Feb 2009
    Messages:
    7
    Likes Received:
    22
    Reputations:
    10
    и сразу ещё вопрос
    почему он div позиционируется не абсолютно а статично.внизу. :rolleyes:


    Code:
    function ShowInfoDiv()
    {
    
        var oDiv = document.createElement("DIV");
        oDiv.id = "msg";
    
        var oText = document.createTextNode("Работаю");
        oDiv.appendChild(oText);
        document.body.appendChild(oDiv);
    	document.getElementById('msg').style.top = 19;
    	document.getElementById('msg').style.width = '100';
    	document.getElementById('msg').style.position = 'fixed';
    
    }
    
    function success(){document.getElementById('msg').style.display = 'none';}
    }
    
    ShowInfoDiv();
    проблему решил нужно было указать цвет.
     
    #1751 dr.Web, 27 Aug 2009
    Last edited: 27 Aug 2009
  12. SaiRus

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

    Joined:
    24 Nov 2008
    Messages:
    369
    Likes Received:
    41
    Reputations:
    0
    переадресация document.location='адрес'
    как это позиционирование решается изменением цвета? :) css4 что ли?
    я дак вижу что он зафиксирован
    document.getElementById('msg').style.position = 'fixed';
    с верху в 19
     
  13. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    PHP:
    <html><body><span id='elem'></span>
    <
    br>
    <
    input type='button' value='Начать' onclick='startTimer(5);'>
    <
    script language='JavaScript'>
    var 
    cnt=0,intv=0;

    function 
    startTimer(c)
    {
      
    cnt=c;
      if(
    intvclearTimeout(intv);
      
    timer();
    }

    function 
    timer()
    {
      if(
    cnt==0)
      {
        
    document.getElementById('elem').innerHTML='';
        
    intv=0;
        return;
      }
      else
      {
        
    intv=setTimeout("timer()",1000);
      }

      
    document.getElementById('elem').innerHTML='Ждите: '+cnt;
      
    cnt--;
    }
    </script>
    </body></html>
     
    1 person likes this.
  14. Volfgan_Castorz

    Volfgan_Castorz New Member

    Joined:
    11 Aug 2009
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Автосёрфер на JavaScript, реально ли?

    Подскажите, можно ли реализовать автосёрфер на JavaScript? Так, чтобы запущенный сценарий, по порядку, переходил по ссылкам html-страницы (перезагружая её), им же и открытой в соседней вкладке броузера (Firefox, IE, Opera)?
    По логике, что-то вроде того, что снизу, только консоль JavaScript ругается на отсутствие привилегий, чтобы вытворять такие вещи с другой вкладкой.

    Code:
    <?xml version="1.0"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    		<script type="text/javascript">
    			function autoserf()
    			{
    				var win=window.open("http://www.defenselink.mil", "new_window");					
    				hrefsList=win.getElementsByTagName("a");
    				for (i=0; i<hrefsList.length; i++)
    				{
    					win.location.href=hrefsList[i].getAttribute("href");					
    				}
    			}
    		</script>
    	</head>
    	<body>
    		<a href="#" onMouseOver="autoserf();">Move the mouse over me!</a>
    	</body>
    </html>
    
    Спасибо за ответ.
     
  15. qazwsx

    qazwsx New Member

    Joined:
    10 Apr 2008
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Очень нужем пример

    Нужно чтобы на моей странице отображались выборочно числовые данные данные с другой страницы др.веб сайта + через интервал к примеру 5 мин. к этим данным в соседнем столбике показывала разницу только с +. К примеру скрипт к вот этой стр. _http://www.kalita-finance.ru/outer/quotations.php?group=1&update=1251380755
     
  16. Flcn

    Flcn Member

    Joined:
    6 Jul 2009
    Messages:
    56
    Likes Received:
    6
    Reputations:
    0
    ну этот код вроде как
    1) даёт полный (бессрочный) доступ на исполнение/инклуд скриптов
    2) позволяет работать с сетью
    3) загружает контейнер с флешпроигрывателем
    4) выводит "Security activated!"
     
  17. MELS+

    MELS+ New Member

    Joined:
    23 Aug 2009
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    только вот начал изучать яваскрипт. и услышал что язык в ходе своего развития начал исполнять функцию работы с кешем. то есть намеренно загружался, чтобы уже со стороны клиента работать, тем самым устраняя торможение. таким оброзом можно ведь закачать что-нибудь своё : ) ? и запустить на машине клиента
     
  18. zifanchuck

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

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    вообщим у меня вопрос
    есть такой себе скрипт
    чар только что руками росколупал))) получилось несто вроде

    кто может обьяснить что оно делает? я в джаваскрипте ни бумбум)) и заодно может кто подскажет где можно переводить чар в обычную строку.... буду очень благодарен
     
  19. MELS+

    MELS+ New Member

    Joined:
    23 Aug 2009
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    zifanchuck, http://webi.ru/webi_articles/10_17_f.html
     
    1 person likes this.
  20. imajo.ati

    imajo.ati Banned

    Joined:
    21 Feb 2008
    Messages:
    232
    Likes Received:
    62
    Reputations:
    8
    <textarea id="a" onkeyup="b()"></textarea>
    <input type="button" value="go" onclick="b()">
    <textarea id="c"></textarea>
    <script>b=function(){
    document.getElementById("c").value = String.fromCharCode(document.getElementById("a").value);
    };</script>
     
Thread Status:
Not open for further replies.