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

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

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

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Code:
    <script type="text/javascript">
    
    function toggle(o, id)
    {
      var lang = {show:'Скрыть форму', hide:'Показать форму'};
      var s = document.getElementById(id).style;
    
      s.display = (s.display != 'block'
        ? (o.innerHTML = lang.show, 'block')
        : (o.innerHTML = lang.hide, 'none'));
    }
    
    </script>
    <a href="#" onclick="toggle(this, 'aim');return false;">Показать форму</a>
    <div id="aim" style="display:none">Форма</div>
    
    А вместо этого:
    Code:
    var result = '';
    for (i=0; i < id.length; i++)
    {
    	if (id[i] <= '9' && id[i] >= '0')
    	result += id[i];
    }
    Лучше так:
    Code:
    var result = /\d+$/.exec(id);
    И в атрибутах onclick никогда не нужно писать "javascript:", поскольку это псевдо-протокол.
     
    1 person likes this.
  2. imajo.ati

    imajo.ati Banned

    Joined:
    21 Feb 2008
    Messages:
    232
    Likes Received:
    62
    Reputations:
    8
    decodeURIComponent(text);
    text - название переменной с твоим текстом



    подскажите, почему следующее не работает в IE 6

    HTML:
    <SCRIPT>
    function act() {
     document.all['TR1'].innerHTML = 'my text' + document.all['TR1'].innerHTML;
    }
    </SCRIPT>
    <INPUT TYPE="BUTTON" ONCLICK="act()" VALUE="кнопка">
    <TABLE><TR ID="TR1"><TD>1</TD></TR></TABLE>
    в опере и лисе работает
     
    #342 imajo.ati, 28 Feb 2008
    Last edited: 28 Feb 2008
  3. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    imajo.ati, не стоит использовать document.all
    Лучше использовать document.getElementById()

    Почему бы не сделать так:
    Code:
    <script type="text/javascript">
    function act()
    {
     document.getElementById('aim').innerHTML = 'my text';
    }
    </script>
    
    <input type="button" onclick="act()" value="кнопка">
    <table>
      <tr id="TR1">
        <span id="aim"></span>
        <td>1</td>
      </tr>
    </table>
     
    #343 astrologer, 28 Feb 2008
    Last edited: 28 Feb 2008
  4. imajo.ati

    imajo.ati Banned

    Joined:
    21 Feb 2008
    Messages:
    232
    Likes Received:
    62
    Reputations:
    8
    astrologer,

    к сожалению это так же не работает в IE6

    тем более нарушается структура таблицы, что мне не подходит. видимо тег <TR> не поддерживает innerHTML в эксплорере, придется думать над альтернативой.
    а document.all и getElementById работает одинаково в современных браузерах, только document.all чуть быстрее

    но всё равно спасибо


    хм.. кстати странно что и это не работает в ие.. м.б. у меня одного так?

    вот это к примеру работает в IE
    HTML:
    <SCRIPT>
    function act() {
     document.all['TR'].innerHTML = 'my text' + document.all['TR'].innerHTML;
    }
    </SCRIPT>
    <INPUT TYPE="BUTTON" ONCLICK="act()" VALUE="кнопка">
    <DIV ID="TR">12<DIV>
    а предыдущее не хочет
     
    #344 imajo.ati, 28 Feb 2008
    Last edited: 28 Feb 2008
  5. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    Подучите HTML

    HTML:
    <SCRIPT>
    function act() {
     document.all['bulko_p4elko'].innerHTML = 'my text' + document.all['bulko_p4elko'].innerHTML;
    }
    </SCRIPT>
    <INPUT TYPE="BUTTON" ONCLICK="act()" VALUE="кнопка">
    <table border="1">
    	<tr>
    		<td id="bulko_p4elko">Text budet tut: </td>
    	</tr>
    </table>
    
     
    #345 bul.666, 28 Feb 2008
    Last edited: 28 Feb 2008
  6. imajo.ati

    imajo.ati Banned

    Joined:
    21 Feb 2008
    Messages:
    232
    Likes Received:
    62
    Reputations:
    8
    bul.666, мне нужно именно в TR записывать, т.к. вместо 'my text' будет конструкция <TD><IMG ... ></TD>

    моя вина - забыл указать это вначале.
     
  7. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    bul.666, да, ты прав. А я тут, как нуп, какие-то спаны леплю.

    imajo.ati, в <tr> нельзя ничего записывать.
    Такая таблица уже не будет проходить валидацию:
    Code:
    <table>
      <tr>
        out-cell text
        <td>123</td>
      </tr>
    </table>
    Но вот это:
    В корне меняет дело.
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    
    <script type="text/javascript">
    
    function add()
    {
      var tr = document.getElementById('tr1'),
      td     = document.getElementById('td1'),
    
      node   = document.createElement('td'),
      img    = document.createElement('img');
    
      img.src = 'http://forum.antichat.ru/antichat/pic/logo.gif';
    
      tr.insertBefore(node, td);
      node.appendChild(img);
    }
    
    </script>
    
    </head>
    <body>
    <table>
      <tr id="tr1">
        <td id="td1">text</td>
      </tr>
    </table>
    <input type="button" onclick="add()" value="add">
    </body>
    </html>
     
    1 person likes this.
  8. imajo.ati

    imajo.ati Banned

    Joined:
    21 Feb 2008
    Messages:
    232
    Likes Received:
    62
    Reputations:
    8
    не знал об этом способе. ты решил мою проблему, большое спасибо =)
     
  9. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    почему я не могу передать указатель на элемент при событии OnBlur?

    function myFunc(element){
    alert(element);
    }
    <input type="text" onBlur="myFunc(this)">
     
  10. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Code:
    <script>
    
    function myFunc(element)
    {
      alert(element);
    }
    
    </script>
    
    <input type="text" onBlur="myFunc(this)">
    Всё работает.
     
  11. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    вопрос по этому коду:

    PHP:
    var iChars "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";

    for (var 
    0document.formname.fieldname.value.lengthi++) {
    if (
    iChars.indexOf(document.formname.fieldname.valuecharAt(i)) != -1) {
    alert ("Your username has special characters. \nThese are not allowed.\n Please remove them and try again.");
    return 
    false;
    }
    }
    можно ли исключить оттуда символы вообще все символы кроме латиницы и цифр?
    я подозреваю, что для этого надо юзать регулярные выражения, но никогда их не использовал в js.
    может кто-нить показать хотя бы пример? а регулярку я сам напишу.
     
  12. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    Code:
    <script>
    var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?"; 
    
    if (/\W/.test(iChars)) { 
    alert ("Your username has special characters. \nThese are not allowed.\n Please remove them and try again."); 
    } 
    </script>
    
    Вот код кот. заменит:

    Code:
    <script>
    var iChars = "b(@)u*@{lko'\-_p!c@h#$%e^&l*()k+=-[o]\\\';,./{}|\":<>?"; 
    
    if (/\W/.test(iChars)) { 
    document.write(iChars.replace(/\W/g,''));
    } 
    </script>
    </script>
    
     
    #352 bul.666, 3 Mar 2008
    Last edited: 3 Mar 2008
  13. zythar

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

    Joined:
    16 Feb 2008
    Messages:
    517
    Likes Received:
    109
    Reputations:
    5
    http://www.pcre.ru/docs/javascript/text/intro1/

    http://javascript.ru/code/basic/regular-expression
     
  14. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    2 Bul.666

    эмм, чет вроде не то.
    у меня задача - проверить введённый пользователем логин, и если там есть что-нить кроме латинских букв и цифр - выдать алерт.
    а у тебя replace.

    Что такое /\W/ ?
     
  15. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Дикс, чем код була не нравится? Как раз то, что нужно - вырезает все символы которые не являются латинскими символами и цифрами (и подчеркиванием)
     
  16. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    т.е. мне сначала вырезать, а затем сравнить с исходной строкой?
    попробую, но нельзя разве просто поискать в строке эти символы?
     
  17. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    блин, как об стену горох!

    убей, не пойму, как это использовать:

    вот есть у меня login.value - к примеру строка "login123вася"
    мне надо посмотреть - если в строке есть всякая шняга типа "вася", то васю паслать на***

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

    Теории куча, практики 0
     
  18. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Code:
    <script>
    var iChars = document.form1.login.value; 
    if (/\W/.test(iChars)) { // если в логине найдены запрещенные символы
      alert ("Your username has special characters. \nThese are not allowed.\n Please remove them and try again."); // Вася, пшелнах
    }
    </script>
    
     
    1 person likes this.
  19. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    2krypt3r && Дикс
    Читайте мой пост там написано, когда при наличие Алерт (Первый код) и когда вырезать (Второй)
     
  20. SSB1981

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

    Joined:
    7 Jan 2008
    Messages:
    108
    Likes Received:
    9
    Reputations:
    0
    Здравствуйте!
    Как с помощью Ajax передать несколько переменных методом Post ?
     
Thread Status:
Not open for further replies.