Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите новичку со скриптом (https://javascript.ru/forum/misc/51734-pomogite-novichku-so-skriptom.html)

Lexx32 17.11.2014 16:41

Помогите новичку со скриптом
 
Всем привет, пытаюсь пересесть с vbs на JS.
На форме есть текстовое поле и кнопка с функцией() + скрипт
В скрипте массив из3-5 элементов, нужно сделать поиск и выводить результат на страницу...
var Arr = [3]; //создем массив
Arr[0] = "первый";
Arr[1] = "второй";
Arr[2] = "третий";
Arr[3] = "четвертый";

function getTextInFind()
{
  var Item=document.forms[0].sub.value.toLowerCase();
	for(var i = 0; i < Arr.length; i++);
  var с = item.length;
  Var d = Arr[i].value;
	var b = d.substr(1,c);
	if (item=b) {
		document.write(Arr[i]);
	}
}

Выдает ошибку на строке 12 - предполагается наличие ";"
Подскажите в чем проблема???

Viral 17.11.2014 16:53

js - регистрозависимый язык, var необходимо писать с маленькой буквы

javascriptus-maximus-∆ 17.11.2014 16:53

в 12й строке Var с большой буквы

Safort 17.11.2014 17:41

10 строка. Зачем ; стоит?
12 строка. var пишется с маленькой.
14 строка. Логика условия, скорее всего, нарушена. Прочитай про оператор ==

Lexx32 17.11.2014 19:12

Про 10 строку еще не понял как концовку передавать, 12 исправил, теперь ошибка = не удается получить значение Arr[i].value? Это значит что массив не загрузился???

Lexx32 17.11.2014 20:34

Safort,
Пожалуйста помогите !!! очень нужно разобратся со скриптом...
Переделал скрипт так
var Arr = new Array(4);

window.onload = function()
{
Arr[0] = "первый";
Arr[1] = "второй";
Arr[2] = "третий";
Arr[3] = "четвертый";

}


function getTextInFind()
{
  var Item=document.forms[0].sub.value.toLowerCase();
	for(var i = 0; i < 4; i++)
  var c = item.length-1;
  var d = Arr[i];
	var b = d.substr(0,c);
	if (item==b) {
		document.write(Arr[i]);
	}
}

И все равно substr ошибка, в справочнике прочитал, вроде так...

Lexx32 17.11.2014 20:56

Люди !!! уже так переделал, все равно херня...
var Arr = new Array(4);

window.onload = function()
{
Arr[0] = "первый";
Arr[1] = "второй";
Arr[2] = "третий";
Arr[3] = "четвертый";

}


function getTextInFind()
{
  var Item=document.forms[0].sub.value.toLowerCase();
	for(var i = 0; i < 4; i++)
   if (Arr[i].localeCompare(item) ==0) {
    document.write( + Arr[i]);
   }
	}

скажите как надо???

Safort 17.11.2014 22:37

Lexx32,
попробуй так
function getTextInFind() {
  var Arr = ["первый", "второй", "третий", "четвертый"];
  var Item = document.forms[0].sub.value.toLowerCase();

  for(var i = 0; i < Arr.length; i++) {
    var с = Item.length;
    var d = Arr[i];
    var b = d.substr(1, c);

    if (Item == b) {
      document.write(Arr[i]);
    }
  }
}

window.onload = function() {

  getTextInFind();

};

ksa 18.11.2014 08:55

Цитата:

Сообщение от Lexx32
На форме есть текстовое поле и кнопка с функцией() + скрипт
В скрипте массив из3-5 элементов, нужно сделать поиск и выводить результат на страницу...

Х/з, что ты там проверяешь... Но как вариант для иллюстрации тестового примера и пр...

<!DOCTYPE html>
<html>
<head>
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
var a=[];
a[0] = "первый";
a[1] = "второй";
a[2] = "третий";
a[3] = "четвертый";

function test() {
	var val=document.getElementById('str').value;
	var re=new RegExp('\^'+val,'i')
	for(var i = 0; i < a.length; i++) {
		if (re.test(a[i])) {
			document.getElementById('info').innerHTML=i;
			return;
		};
	};
	document.getElementById('info').innerHTML='No';
};
</script>
</head>
<body> 
<form onsubmit='test(); return false;'>
	<input type='text' id='str' value='третий' />
	<button>Test</button>
	<div id='info'></div>
</form>
</body>
</html>

Lexx32 18.11.2014 19:49

ksa,
Большое спсибо - мне нужно было сделать простой поиск по мини бд в js файле я 22 строку document.getElementById('info').innerHTML=i;
заменил на document.getElementById('info').innerHTML=a[i]; и у меня выходит запись, но как сделать чтоб выходили все записи??? убрал return???

ksa 19.11.2014 08:49

Цитата:

Сообщение от Lexx32
как сделать чтоб выходили все записи?

Как вариант...

<!DOCTYPE html>
<html>
<head>
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
var a=[];
a[0] = "первый";
a[1] = "второй";
a[2] = "третий";
a[3] = "четвертый";
a[4] = "третий";

function test() {
	var val=document.getElementById('str').value;
	var dlm='';
	var re=new RegExp('\^'+val,'i')
	for(var i = 0; i < a.length; i++) {
		if (re.test(a[i])) {
			document.getElementById('info').innerHTML+=dlm+a[i];
			dlm=', ';
		};
	};
};
</script>
</head>
<body> 
<form onsubmit='test(); return false;'>
	<input type='text' id='str' value='третий' />
	<button>Test</button>
	<div id='info'></div>
</form>
</body>
</html>

Lexx32 19.11.2014 14:12

ksa,
Большое спасибо, я ваще не программист, просто балуюсь... для своего предприятия делаю сайт а знаю тока vbs,vb6,1c77 немного делфи, на vbs для ie накатал вот это
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Windows-1251">
<TITLE></TITLE>
</HEAD>
<SCRIPT LANGUAGE="VBScript">
Dim Arr(10)
Sub LoadMass()
Arr(1)="Бинт трубчатый лат.-полиэф.Интекс №2 (0,;Интертекстиль;01.08.16;6.3;4605086000041"
Arr(2)="Дальфаз ретард таб. пролонг. действ. п/о;Санофи-Винтроп Индустрия;01.11.14;2345.9;3582910005407"
Arr(3)="Корнам табл. 2 мг х20;LEK;01.04.15;330.5;3838957871018"
Arr(4)="Лаксигал капли 7,5мг/мл 10мл фл.-кап.;АЙВЭКС Фармасьютикалс с.р;01.03.15;248.25;8594737197512"
Arr(5)="Лодоз 2.5мг+6.25мг Таб. п/о Х30;Мерк Сантэ с.а.с.;31.01.15;279.2;3596540090016"
Arr(6)="Тмина плоды сырьё  , 50 г;фирма Здоровье ЗАО(143430;01.01.15;35.55;4601214000631"
Arr(7)="Травоген крем 1% 20г;Интендис Мануфэкчуринг С.;01.12.16;532.45;4260085520336"
Arr(8)="Три-Мерси табл. х21;Organon;01.11.14;789.6;4601910000430"
Arr(9)="Турамин I-Йод ь90;ООО ВИС;29.10.14;135.55;4607039973969"
Arr(10)="Турамин Mn-Марганец ь90;ООО ВИС;03.10.14;144.9;4607039973976"
End Sub
Sub Button1_OnClick()
	dim val
	dim i,x,y
  dim tab()
  dim A
  dim s
  document.getElementById("info").innerHTML=""
	LoadMass
	val=document.getElementById("str").value
	x=-1:y=0
	for i=0 to Ubound(Arr)-1
		if instr(1,lcase(Arr(i)),lcase(val),vbTextCompare)>0 then
          if len(Arr(i))>0 then
      		  x=x+1
      		  s=Arr(i)
      		  A=split(s,";")
		          redim preserve tab(4,x)
              tab(0,x)="<tr><td>" & A(0) & "</td>"
              tab(1,x)="<td>" & A(1) & "</td>"
              tab(2,x)="<td>" & A(2) & "</td>"
              tab(3,x)="<td>" & A(3) & "</td>"
              tab(4,x)="<td>" & A(4) & "</td></tr>"
      		  end if
		end if
	next
	res="<table border=1>"
	res=res & "<tr><th>Наименование</th><th>Изготовитель</th><th>Срок годности</th><th>Цена</th><th>EAN</th></tr>"
	for y=0 to x
    res=res & tab(0,y) & tab(1,y) & tab(2,y) & tab(3,y) & tab(4,y)
	next
	res=res & "</table>"
  document.getElementById("info").innerHTML=res
End sub
</script>
<body>
 <Center><b style="color:#0000ff"> Фарм. деятельность </Center></b>
                                                   <br>
<table width="100%" height="100%">
<tr><td valign="top" style="text-align: center; font-size: 10pt;">
<br />
<ul>
<H2>Поиск пока реализован для IE8, Chrom</H2>


<H2>Остатки актуальны на 19.11.2014 г. 13:41:08</H2>
<li>Введите: наименование лекарственного средства ...</li>
         <li>Нажмите &quot;Поиск&quot; чтобы увидеть результаты поиска.</li>
</ul>
<form>
    <input type="text" id="str" value="" />
    <INPUT NAME="Button1" TYPE="BUTTON" VALUE="Найти">
    <div id="info"></div>
</form>


</td></tr><tr><td style="text-align: center; font-size: 8pt;" valign="bottom">
<br/>&nbsp; </td></tr>
</table>

</div>
</body>
</HTML>


а сейчас сижу пытаюсь переделать на js и честно вообще до логики языка не догоняю. Но всеже большое спасибо за пример.


Часовой пояс GMT +3, время: 15:02.