08.08.2008, 19:29
|
|
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("Что я хочу вывести");
Заранее благодарю за ответ если вы не поняли что я хочу узнать спросите ....
|
|
08.08.2008, 19:49
|
|
|
Регистрация: 21.02.2008
Сообщений: 1,250
|
|
Я ничего не понял. Выложите листинг кода.
|
|
08.08.2008, 20:15
|
|
<!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> </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-кодами для оформления листингов кода в теле сообщения!
|
|
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.
|
|
09.08.2008, 00:24
|
|
Сообщение от Андрей Параничев
|
Хм, я все еще не понял сути вопроса, но, вроде бы, кое-что уловил.
Вы можете откуда угодно менять содержание 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 точнее недавно начал только)) попробую разобраться ) хотелось бы еще узнать можно ли из одной функции передавать значения в другую ? Каким-либо способом ? Заранее спасибо и за этот ответ ....
|
|
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!"
|
|
09.08.2008, 01:12
|
|
Сообщение от Андрей Параничев
|
Можно, если вы имеете в виду передать переменную, сформированную в ходе работы одной функции, в другую. Это можно сделать, используя глобальные переменные, например:
// Объявляем глобальную переменную 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;
??
|
|
09.08.2008, 02:43
|
|
|
Регистрация: 21.02.2008
Сообщений: 1,250
|
|
Нет, это я для примера так назвал. Название может быть любое.
Синтаксис по сути тотже самый, что и у создания обычной переменной, просто создается она в глобальной области видимости.
|
|
14.08.2008, 16:11
|
|
Андрей Параничев помогите пожалуйста разобраться с кодом думаю что должно все работать но нет ничего не получается требуется вывести из файла построчно строки соответствующие критерию поиска вот код
<!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>
|
|
|
|