HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 12.03.2010, 21:47
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Цитата:
Сообщение от оlbaneс  
да через алерт работает, но у меня другой случай - ввод данных в форму и вывод через document
вот сам скрипт без хтмл
Код:
	function two()
	{
	 var a=0;
	 	 x = document.forms[0].elements['x'].value;
		  x+=1;
		for (var i=0; i<x; i++){ a+=i;}
     document.getElementById('qqq').innerHTML = 'Результат ='+a   ;
	}
а что оно выводит я писал выше. какая-то безумная магия.
x - это строка. Соответственно при (x += 1) происходит не сложение, а конкатенация и получается "11" вместо 2 и т. п. При сравнении (i < x) оба аргумента преобразуется к числовому типу (этого не происходит только если с обеих сторон - строки). Далее всё достаточно очевидно.

Кстати, это называется арифметическая прогрессия и её сумма считается без циклов.
 
Ответить с цитированием

  #2  
Старый 12.03.2010, 21:57
оlbaneс
Moderator - Level 7
Регистрация: 05.11.2007
Сообщений: 894
Провел на форуме:
5609275

Репутация: 1474


По умолчанию

Паш, безумный ад. я пробовал и так. и даже думал что она их соединяет и писал так a=a+i*1
а твой код заработал. выяснил методом тыка , что все дело в выражени for (var i=0; i<x; i++) i<x -вот так пишет всякую херню, а вот так работает нормально i<=x .
все дело в знаке =. 0_0.


2 астрологер. пока метод тыка осваивал ты ответ написал. в том то и дело не происходила конкатенация. если вводил 1 полчал 55 если 4 получал 820. даже не представляю как она считала.

Последний раз редактировалось оlbaneс; 12.03.2010 в 22:01..
 
Ответить с цитированием

  #3  
Старый 12.03.2010, 22:10
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Цитата:
Сообщение от оlbaneс  
в том то и дело не происходила конкатенация
Как будто у неё выбор есть. Достаточно проверить тип и значение x и всё станет ясно:
Код:
<script>

function fn()
{
  var a = 0;
  var x = document.forms[0].elements['x'].value;
  x += 1;

  alert('x: ' + typeof x + ': ' + x);
  for (var i = 0; i < x; i++){ a+=i; }
  alert('i: ' + i);

  document.getElementById('qqq').innerHTML = 'Результат ='+a   ;
}

</script>
<form>
  <input name="x" id="x" onchange="fn()">
</form>
<pre id="qqq"></pre>
Цитата:
если вводил 1 полчал 55 если 4 получал 820. даже не представляю как она считала.
Так и считала, для "11" и "41" соответственно.
 
Ответить с цитированием

  #4  
Старый 13.03.2010, 16:47
Tesson
Участник форума
Регистрация: 27.12.2009
Сообщений: 126
Провел на форуме:
1170081

Репутация: 63
По умолчанию

Не могу сделать транслит вот код и http://tesson.tk/translit.js
PHP код:
<html>
<
head>
<
title>Транслит</title>
<
script type='text/javascript' src='http://tesson.tk/translit.js'></script>
</
head>
<
body>

Транслит:<input type="checkbox" name="transl" id="transl">
<
input type="text" id="text" onkeypress="if($('#transl').attr('checked')) translate_letter(event, this, rules=1);">

</
body>
</
html
что не так сделал?

Последний раз редактировалось Tesson; 13.03.2010 в 17:41..
 
Ответить с цитированием

  #5  
Старый 13.03.2010, 17:09
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


По умолчанию

Код:
<script>
var rusChars = new Array('а','б','в','г','д','е','ё','ж','з','и','й',  'к','л','м','н','о','п','р','с','т','у','ф','х','ч  ','ц','ш','щ','э','ю','\я','ы','ъ','ь', ' ', '\'', '\"', '\#', '\$', '\%', '\&', '\*', '\,', '\:', '\;', '\<', '\>', '\?', '\[', '\]', '\^', '\{', '\}', '\|', '\!', '\@', '\(', '\)', '\-', '\=', '\+', '\/', '\\');
var transChars = new Array('a','b','v','g','d','e','jo','zh','z','i','j  ','k','l','m','n','o','p','r','s','t','u','f','h',  'ch','c','sh','csh','e','ju','ja','y','', '', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '');
var from = "";

function convert2EN()
  {
  from = document.getElementById("Message").value;
  from = from.toLowerCase();
  var to = "";
  var len = from.length;
  var character, isRus;
  for(var i=0; i < len; i++)
    {
    character = from.charAt(i,1);
    isRus = false;
    for(var j=0; j < rusChars.length; j++)
      {
      if(character == rusChars[j])
        {
        isRus = true;
        break;
        }
      }
    to += (isRus) ? transChars[j] : character;
    }
   document.form1.Message.value = to; 
  }
</script>

<FORM NAME="form1">
<textarea name="Message" id="Message" cols="30" rows="5" class="text"></textarea><br> 
<input type="button" value="Транслит" onclick="convert2EN()">
</FORM>
 
Ответить с цитированием

  #6  
Старый 13.03.2010, 17:18
Tesson
Участник форума
Регистрация: 27.12.2009
Сообщений: 126
Провел на форуме:
1170081

Репутация: 63
По умолчанию

Pashkela, надо через checkbox и через мой tesson.tk/translit.js

Последний раз редактировалось Tesson; 13.03.2010 в 17:23..
 
Ответить с цитированием

  #7  
Старый 14.03.2010, 03:19
GhOsT_MZ
Новичок
Регистрация: 08.03.2010
Сообщений: 3
Провел на форуме:
3912

Репутация: 0
По умолчанию

Цитата:
Сообщение от Tesson  
Pashkela, надо через checkbox и через мой tesson.tk/translit.js
Зачем?О_о Ведь он достаточно громоздкий, а Pashkela предложил более простой и производительный вариант. Или в твоем скрипте есть какой-то особенный функционал, без которого не обойтись?
 
Ответить с цитированием

  #8  
Старый 15.03.2010, 19:08
оlbaneс
Moderator - Level 7
Регистрация: 05.11.2007
Сообщений: 894
Провел на форуме:
5609275

Репутация: 1474


По умолчанию

чет никак нагуглить не могу.
как в ячейки таблицы (вместо знака пробела)вставить данные скрипта? в данном случае скрипт заполняет таблицу умножения
//алерт не предлагать
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1251">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  <style>
  table  {border:darkred solid 1px;}
  td     { text-align:center;width:40px;background-color:lightgrey;border:darkred solid 1px; }
  td.one {font-weight:bold; background-color: grey;  }
  </style>
           <script>
           var c,j=1;
           for (var i=1;i<10;i++) {c=i*j;j++;}
   //как вывести значения в таблицу?
           </script>
  </head>
  <body>

                      <h2 align="center"><b>  table</b></h3>
  <table align="center" cellpadding="5" border="1" cellspacing="0">
  <tbody><tr>
    <td class="one">&nbsp;</td>
    <td class="one">1</td>
    <td class="one">2</td>
    <td class="one">3</td>
    <td class="one">4</td>
    <td class="one">5</td>
    <td class="one">6</td>
    <td class="one">7</td>
    <td class="one">8</td>
    <td class="one">9</td>
    <td class="one">10</td>
  </tr>

  <td class="one">1</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
         </tr>
         
         <tr>
  <td class="one">2</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
         </tr>


  </tbody></table>
  </body>
</html>
 
Ответить с цитированием

  #9  
Старый 13.03.2010, 18:51
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


По умолчанию

у тебя функция есть, модифицируй её как хочешь, готовый код за тебя никто писать не будет
 
Ответить с цитированием

  #10  
Старый 13.03.2010, 19:23
Tesson
Участник форума
Регистрация: 27.12.2009
Сообщений: 126
Провел на форуме:
1170081

Репутация: 63
По умолчанию

Цитата:
Сообщение от Pashkela  
у тебя функция есть, модифицируй её как хочешь, готовый код за тебя никто писать не будет
помогут другие если не ты
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi]/[Pascal] Задай вопрос, получи ответ Isis С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 6762 17.06.2010 21:23



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.