2014-11-24 3 views
-1

Я знаю, что это было говорили много о том, что, но я попробовал много из этих вариантов, и без успеха, пожалуйста, дайте мне знать, что я сделал неправильно здесь:Вызов функции в осины от кнопки OnClick

<html> 
    <head> 
    <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'> 
    <title>IP</title> 
    <% 
    function su192168165() 
     Dim fso192168165, f, filespec, wrln 
     set wrln = Document.getElementById(192168165).Value 
     Set fso192168165 = CreateObject("Scripting.FileSystemObject") 
     filespec = Server.Mappath("/comment/192168165Comments.txt") 
     Set f = fso192168165.OpenTextFile(filespec,2) 
     f.WriteLine wrln 
     f.Close 
    End function 
    %> 
    </head> 
    <body> 
    <input type="text" id="192168165" name="Comment" value=""/><input type="button" value="Comment" onclick="su192168165()"/> 
    </body> 
    </html> 

Это мой HTML-код, который содержит место для записи комментариев, и после нажатия кнопки нужно написать комментарий к файлу, но он не работает.

Я также попытался заменить функции с помощью sub, той же проблемой. Код 0 на линии 8. «set wrln = Document.getElementById (192168165). Значение«

Пожалуйста, помогите мне и сообщите мне, что я написал здесь неправильно. Thanks Tal

ответ

2

То, что вы делаете, невозможно на нескольких уровнях. Чтобы дать вам краткий обзор проблемы. У вас есть здесь:

Вы не можете делать этот вид записи на серверные файлы с помощью простого метода onClick.

Это не говорит о том, что это невозможно, потому что вы не можете сделать это так, как вы, кажется, думаете, что можете вообще.

Для начала я хочу подчеркнуть, что не так с кодом с базовой точки зрения. Метод onClick пытается вызвать функцию VBScript. Это невозможно. Вы должны понимать, что VBScript является языком сценариев сервера, а onClick - обработчиком событий, который обычно запускает javascript, который выполняется на клиенте. Как только клиент загружает эту страницу, сервер запускает этот код и, как правило, больше не существует. Сервер не передает функцию VBScript клиенту.

Надеюсь, это имеет смысл и должно оставить вопрос о том, как выполнить задачу, которую вы хотите выполнить. Простым способом, который я бы рекомендовал, было бы добавить форму для этого поля, и кнопка запустит форму обратно на ту же страницу. Затем вы можете использовать метод Request.Form для вызова поля в вашей функции. Вы также хотели бы изменить функцию на простое условие if, которое проверит, если вы отправили обратно с кнопки. Как вы решили это сделать, зависит от вас.

Предположим, что вышеуказанный метод не работает для вас. По какой-то причине вы не можете сделать обратную передачу. По этой причине вам абсолютно необходимо сделать это асинхронно. В этом случае вам понадобится разработать вызов Ajax. Вы можете посмотреть эту ссылку SO, чтобы сделать то же самое в PHP, чтобы помочь вам понять, что вам нужно знать, чтобы начать с этого метода: Saving a text file on server using JavaScript.

В противном случае вам придется осмотреться самостоятельно для учебных пособий о том, как делать асинхронные обратные вызовы в классическом asp. Удачи.

+1

Просто для того, чтобы путать вещи VBScript - это «язык сценариев» и может быть как клиентской, так и серверной, с точки зрения работы с классическим ASP это язык сценариев по умолчанию, используемый «серверный». Кроме того, если вы используете клиентскую часть VBScript, вы обнаружите, что большинство браузеров не поддерживается, за исключением Internet Explorer. – Lankymart

+1

Пожалуйста, путайте ** VB ** с VBScript, они разные. VB - это полноценный язык программирования, а VBScript - эквивалент языка сценариев. – Lankymart

+1

Каким образом внедрение другой технологии (PHP в этом случае) помогает OP? – Lankymart