Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2008, 19:29
baal
 
Сообщений: n/a

documen.write внутри слоя <div>
Значит сначала объясню что дано есть форма - в которой содержится несколько полей ввода данных которые затем потом записываются в файл блокнота, так же есть поле ввода текста с которого осуществляет поиск этих самых введенных данных , задача вывести из блокнота в виде <div> все данные по заданному критерию.
- Есть функция записи данных в файл .txt
- Есть функция которая осуществляет поиск , но я не могу передать этот критерий поиска в функцию, вообщем есть форма предположим form на ней есть поле find у поля find есть свойство value так вот я не могу передать предположим это значение в функцию
я делаю так но не работает :

var reg = new RegExp(window.document.form.find.value);

Да и помогите пожалуйста как сделать чтобы функция вызывалась из одного места, из одного слоя <div id="m1"> а результат функции выводился в другом слое <div id="m2"> я делаю так но не работает внутри функции пишу если мне нужно вывести в слое m2 :

window.document.m2.write("Что я хочу вывести");


Заранее благодарю за ответ если вы не поняли что я хочу узнать спросите ....
Ответить с цитированием
  #2 (permalink)  
Старый 08.08.2008, 19:49
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Я ничего не понял. Выложите листинг кода.
Ответить с цитированием
  #3 (permalink)  
Старый 08.08.2008, 20:15
baal
 
Сообщений: n/a

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Сайт</title>
</head>

<script type="text/javascript"> 

function showLayer() {
document.getElementById("polefind").style.visibility = "visible";
}

function createfile(form)
{
    var FSO = new ActiveXObject("Scripting.FileSystemObject"); 
    var f = FSO.OpenTextFile("c:\\filesave.txt", 8, true);
    f.writeline(""); 
    f.Write(form.tube.value + " " + form.number.value + " " + form.date.value + " " + form.family.value + " ");
    if (form.defect1.checked == 1) f.write(form.defect1.value + " ");
    if (form.defect2.checked == 1) f.write(form.defect2.value + " ");
    if (form.defect3.checked == 1) f.write(form.defect3.value + " ");
    if (form.defect4.checked == 1) f.write(form.defect4.value + " ");
    if (form.defect5.checked == 1) f.write(form.defect5.value + " ");
    if (form.defect6.checked == 1) f.write(form.defect6.value + " ");
    if (form.defect7.checked == 1) f.write(form.defect7.value + " "); 
    if (form.defect8.checked == 1) f.write(form.defect8.value + " ");
    f.Close();
} 

function poisk() {
    var FSO = new ActiveXObject("Scripting.FileSystemObject"); 
    var f = FSO.OpenTextFile("c:\\filesave.txt", 1, true);
    myArray= new Array();
    var i=0;
    var reg = new RegExp(window.document.form.find.value);

    window.document.polefind.write("<table width='40%' style='border-collapse: collapse; font-size: 90%'>");   
       while (!f.AtEndOfStream) {
         myArray[i] = f.ReadLine();
         if(reg.test(myArray[i])==true)
           {
              window.document.polefind.write("<tr><td>");
              window.document.polefind.write(myArray[i]);
              window.document.polefind.write("</td></tr>");
           }
         i=i+1;
      }
     window.document.polefind.write("</table>");
}

<style type="text/css">

#tube, #number, #date, #family, #butt {
 position: absolute;
 top:10px;
 border: 1px solid #000080;
 margin:2px;
}

#tube {
 left:2px;
 border-right:0px;
}

#number {
 left:153px;
 border-left:0px;
 border-right:0px;
}

#date {
 left:303px;
 border-left:0px;
 border-right:0px;
}

#family {
 left:453px;
 border-left:0px;
 border-right:0px;
}

#butt {
 border-left:0px;
 left:603px;
}

#tube P, #number P, #date P, #family P, #butt P {
 margin:0px;
 padding-bottom:3px;
 margin-bottom:5px;
 text-align:center;
 color:white;
 font-weight:bold;
 border-bottom: 1px solid blue;
 background: #000080;
 font-family: Arial, Helvetica, sans-serif; 
 font-size: 80%;
}

input.but {
  width: 12%;
}

input.but1 {
  width: 5%;
}

#find {
  position:absolute;
  top:100px;
  left:20%;
}

#polefind {
  position:absolute;
  left:20%;
  top:180px;
  visibility:hidden;
}

</style>
<body>



<form name="mainform">

<div id="tube">
    <p>Газопровод</p>
    <input type="text" name="tube">
</div>

<div id="number">
    <p>№ Трубы</p>
    <input type="text" name="number">
</div>

<div id="date">
    <p>Дата обследования</p>
    <input type="text" name="date">
</div>

<div id="family">
    <p>ФИО</p>
    <input type="text" name="family">
</div>

<div id="butt">
    <p>&nbsp;</p>
    <input type="button" name="button" class="but" value="Добавить данные"  onClick="createfile(this.form); poisk();">
</div>




<div id="find">

<table width="40%">
 <tr>
  <th colspan="2">Поиск по критериям</td>
 </tr> 
 <tr>
  <td><input type="text" size="64" name="find"></td>
  <td><input type="button" value="Поиск" onClick="showLayer(); "></td>
 </tr>
</table>

</form>



<div id="polefind"> </div>

</body>
</html>

Последний раз редактировалось Андрей Параничев, 08.08.2008 в 20:21. Причина: Пользуйтесь bb-кодами для оформления листингов кода в теле сообщения!
Ответить с цитированием
  #4 (permalink)  
Старый 08.08.2008, 20:31
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Хм, я все еще не понял сути вопроса, но, вроде бы, кое-что уловил.
Вы можете откуда угодно менять содержание div, используя DOM, например у вас есть элемент:
<div id="element1"></div>


Из любой функции вы можете редактировать содержание этого элемента, получив его из модели:
var element1 = document.getElementById("element1");
// Свойство innerHTML ссылается на содержание элемента:
element1.innerHTML = "Элемент 1 изменён";


Ваш код какой-то уж слишком Delphi-style, получение элемента через имя уже устарело (window.document._form_name_._input_name_), лучше работать с DOM (getElementById, getElementsByTagName), тем более в вашем случае, когда нужно заменить содержание конкретного элемента. document.write() тоже не рекомендуется и является устаревшим приемом, рекомендуется изменять содержание через свойство innerHTML.
Ответить с цитированием
  #5 (permalink)  
Старый 09.08.2008, 00:24
baal
 
Сообщений: n/a

Сообщение от Андрей Параничев Посмотреть сообщение
Хм, я все еще не понял сути вопроса, но, вроде бы, кое-что уловил.
Вы можете откуда угодно менять содержание div, используя DOM, например у вас есть элемент:
<div id="element1"></div>


Из любой функции вы можете редактировать содержание этого элемента, получив его из модели:
var element1 = document.getElementById("element1");
// Свойство innerHTML ссылается на содержание элемента:
element1.innerHTML = "Элемент 1 изменён";


Ваш код какой-то уж слишком Delphi-style, получение элемента через имя уже устарело (window.document._form_name_._input_name_), лучше работать с DOM (getElementById, getElementsByTagName), тем более в вашем случае, когда нужно заменить содержание конкретного элемента. document.write() тоже не рекомендуется и является устаревшим приемом, рекомендуется изменять содержание через свойство innerHTML.
Спасибо я пока мало разбираюсь в JavaScript точнее недавно начал только)) попробую разобраться ) хотелось бы еще узнать можно ли из одной функции передавать значения в другую ? Каким-либо способом ? Заранее спасибо и за этот ответ ....
Ответить с цитированием
  #6 (permalink)  
Старый 09.08.2008, 00:38
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Можно, если вы имеете в виду передать переменную, сформированную в ходе работы одной функции, в другую. Это можно сделать, используя глобальные переменные, например:
// Объявляем глобальную переменную globvar1,
// фактически, это будет свойство window.globvar1:
var globvar1 = null;

function func1() {
    // Изменяем значение globvar1:
    globvar1 = "Hello";
    // Объявляем глобальную переменную globvar2
    // обратите внимание, что без var в начале:
    globvar2 = "World!";
}

function func2() {
    alert([globvar1, globvar2]);
}

// Вначале мы объявили "var globvar1", чтоб она существовала,
// а поскольку globvar2 объявляется только в func1(), то вызов 
// func2() перед func1() выдаст ошибку:
func2();

func1(); // Запишет globvar1 и globvar2
func2(); // Отобразит alert "Hello,World!"
Ответить с цитированием
  #7 (permalink)  
Старый 09.08.2008, 01:12
baal
 
Сообщений: n/a

Сообщение от Андрей Параничев Посмотреть сообщение
Можно, если вы имеете в виду передать переменную, сформированную в ходе работы одной функции, в другую. Это можно сделать, используя глобальные переменные, например:
// Объявляем глобальную переменную globvar1,
// фактически, это будет свойство window.globvar1:
var globvar1 = null;

function func1() {
    // Изменяем значение globvar1:
    globvar1 = "Hello";
    // Объявляем глобальную переменную globvar2
    // обратите внимание, что без var в начале:
    globvar2 = "World!";
}

function func2() {
    alert([globvar1, globvar2]);
}

// Вначале мы объявили "var globvar1", чтоб она существовала,
// а поскольку globvar2 объявляется только в func1(), то вызов 
// func2() перед func1() выдаст ошибку:
func2();

func1(); // Запишет globvar1 и globvar2
func2(); // Отобразит alert "Hello,World!"
Спасибо еще раз а каков вообще синтаксис объявления глобальных переменных

var glob"Любое имя" = null;


??
Ответить с цитированием
  #8 (permalink)  
Старый 09.08.2008, 02:43
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Нет, это я для примера так назвал. Название может быть любое.
Синтаксис по сути тотже самый, что и у создания обычной переменной, просто создается она в глобальной области видимости.
Ответить с цитированием
  #9 (permalink)  
Старый 14.08.2008, 16:11
baal
 
Сообщений: n/a

Андрей Параничев помогите пожалуйста разобраться с кодом думаю что должно все работать но нет ничего не получается требуется вывести из файла построчно строки соответствующие критерию поиска вот код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Сайт</title>
</head>

<script type="text/javascript"> 

function inner() {

    var FSO = new ActiveXObject("Scripting.FileSystemObject"); 
    var file = FSO.OpenTextFile("c:\\filesave.txt", 1, true);
    var poisk = document.getElementById("folk");
    var spisok = document.getElementById("tab_find");
    myArray= new Array();
    var i=0;
    
    spisok.innerHTML += "<table>";
    while (!file.AtEndOfStream)
    {
         myArray[i] = file.ReadLine();
         if(poisk.value.test(myArray[i])==true)
              spisok.innerHTML += "<tr><td>" + myArray[i] + "<\/td><\/tr>";
           
         i=i+1;
      }
    spisok.innerHTML += "<\/table>";

}

</script>

<style type="text/css">
 
</style>

<body>

<form name="mainform">

<div id="number">
    <p>№ Трубы</p>
    <input type="text" name="folk">
    <input type="button" name="button" value="Добавить данные"  onClick="inner()">
</div>

<div id="tab_find">
</div>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не отрабатывает событие onmouseout при внедрении нового слоя ilshat Элементы интерфейса 3 28.07.2008 06:27
Передать адресную строку внутри Фрейма Smirnov007 Общие вопросы Javascript 1 08.02.2008 15:04