ASP записывает значения из текстового поля в текстовый файл

У меня есть текстовое поле (id=output2), в котором есть список чисел. У меня есть код ASP, который записывает данные в текстовый файл, и он работает, если я укажу текст.

Код для записи в текстовый файл:

<%
function WriteToFile(FileName, Contents, Append)
on error resume next

if Append = true then
   iMode = 8
else 
   iMode = 2
end if
set oFs = server.createobject("Scripting.FileSystemObject")
set oTextFile = oFs.OpenTextFile(FileName, iMode, True)
oTextFile.Write Contents
oTextFile.Close
set oTextFile = nothing
set oFS = nothing

end function

%>

Затем этот код перезаписывает файл и вставляет данные И РАБОТАЕТ:

<%
WriteToFile "C:\INSTALL\Test1.txt", "Why is this so difficult??", False
%>

Но все же, если я оставлю первый код в покое и попытаюсь получить динамические данные, например, из поля textarea, он завершится ошибкой. Даже не трогает текстовый файл. Я пробовал много-много способов... вот пять, которые НЕ ПРОШЛИ:

1:

<%
WriteToFile "C:\INSTALL\Test1.txt", Document.getElementById("output2"), False
%>

2:

<%
dim texttoinsert
texttoinsert = Document.getElementById("output2")
WriteToFile "C:\INSTALL\Test1.txt", texttoinsert, False
%>

3:

<%
WriteToFile "C:\INSTALL\Test1.txt", Response.Write(Document.getElementById("output2")), False
%>

4:

<%
dim texttoinsert
texttoinsert = "Starting to hate this"
WriteToFile "C:\INSTALL\Test1.txt", texttoinsert, False
%>

5:

<%
dim texttoinsert
texttoinsert = "Definitely hate this"
WriteToFile "C:\INSTALL\Test1.txt", Response.Write(texttoinsert), False
%>

Я даже сделал некоторый VBscript, который смог подключиться к Document.getElementById, но я не мог понять, как заставить его войти в код ASP.


person Jason Paw    schedule 28.03.2015    source источник


Ответы (2)


document.getElementByID не имеет никакого значения в коде на стороне сервера. Вы должны отправить форму для передачи данных на страницу функции, а затем использовать ее следующим образом:

html-страница:

<form action="myfunction.asp">
<input name="texttoinsert">
<input type="submit" value="write data">
</form>

myfunction.asp

<%
function WriteToFile(FileName, Contents, Append)
 on error resume next
 if Append = "true" then
    iMode = 8
 else 
    iMode = 2
 end if
 set oFs = server.createobject("Scripting.FileSystemObject")
 set oTextFile = oFs.OpenTextFile(FileName, iMode, True)
 oTextFile.Write Contents
 oTextFile.Close
 set oTextFile = nothing
 set oFS = nothing
end function

texttoinsert = request("texttoinsert")
WriteToFile "C:\INSTALL\Test1.txt", texttoinsert, False
%>
person Ali Sheikhpour    schedule 28.03.2015
comment
Еще раз спасибо Али. Причина, по которой я пытался сделать это таким образом, заключалась в том, чтобы избежать отправки формы до тех пор, пока у меня не будут данные на месте и они не будут проанализированы для INSERT RECORD. Есть ли способ изменить это со стороны сервера на сторону клиента и по-прежнему иметь возможность писать в текстовый файл, или это запрещает сторона клиента? - person Jason Paw; 29.03.2015
comment
Запись в файл сервера не имеет смысла для запуска на стороне клиента. Вы можете просто имитировать это, используя jquery ajax для извлечения данных из поля ввода, но передавая данные на другую страницу, которая записывает полученные данные в файл сервера. - person Ali Sheikhpour; 29.03.2015

Response.write не нужен при передаче переменной в функцию.

<%dim texttoinsert
texttoinsert = "Definitely hate this"
WriteToFile "C:\INSTALL\Test1.txt", texttoinsert, False
%>
person WorkSmarter    schedule 28.03.2015
comment
Спасибо WorkSmarter. Я отчаянно пытался что-то сделать. :-) - person Jason Paw; 29.03.2015