2013-04-08 18 views
5

Próbowałem to zrobić bez powodzenia, więc zdecydowałem się zapytać SO.Utwórz plik tekstowy dziennika przy użyciu kodu JavaScript

Mam stronę z mnóstwem różnych przycisków i każdy przycisk ma swoje własne parametry.

Chcę utworzyć plik .txt jako dziennik, a następnie za każdym razem, gdy ktoś kliknie jeden z przycisków, zapisze w dzienniku parametry i przycisk, który został kliknięty. Każdy przycisk ma swoją własną funkcję, więc zakładam, że po prostu utworzę funkcję, a następnie dodaję ją na początku każdej funkcji, używając parametrów tej funkcji.

Musiałbym więc utworzyć plik txt przy użyciu funkcji onLoad(), a następnie utworzyć funkcję do zapisu w pliku .txt za każdym razem, gdy kliknięto przycisk.

Próbowałem:

function WriteToFile(passForm) { 

    set fso = CreateObject("Scripting.FileSystemObject"); 
    set s = fso.CreateTextFile("logs\log1.txt", True); 
    s.writeline("HI"); 
    s.writeline("Bye"); 
    s.writeline("-----------------------------"); 
    s.Close(); 
} 

ale nie miał szczęścia i pojawia się błąd mówiący o planowanej na początku linii set fso Object.

Jakieś pomysły, jak rozwiązać ten problem lub lepiej go wdrożyć?

UPDATE Więc po prostu chcesz utworzyć plik dziennika i dostać wypełnione danymi za każdym razem, gdy użytkownik kliknie na przyciski tak wiem, kto jest kliknięcie co. Wszystkie moje pliki znajdują się na serwerze, więc chcę tylko utworzyć tam plik tekstowy i wypełnić go informacjami.

+0

Czy na pewno mówimy tutaj o JavaScript (nacisk na _Script_) ...? – CBroe

+0

@ CBroe, mam doświadczenie z JavaScriptem i dlatego chciałbym to zrobić w ten sposób. Co jeszcze masz na myśli? – randomizertech

+0

Chcesz się zalogować do pliku tekstowego na komputerze klienta? – MikeSmithDev

Odpowiedz

1

Próbujesz to zrobić?

http://www.yaldex.com/wjscript/jsfilecreateTextFile.htm

Jeżeli tak, to wykorzystuje się aktywny x obiektu. To byłaby rzecz.

+0

W porządku, używam IE tak czy inaczej – randomizertech

+0

Daje mi ostrzeżenie o ActiveX, czy jest jakiś sposób, aby tego nie pokazać? Daje mi też komunikat "Zła nazwa lub numer pliku". – randomizertech

+0

Czy wszyscy "użytkownicy" również korzystają z przeglądarki Internet Explorer? Zlokalizowane rzeczy nie są zalecane. Zwłaszcza starożytne obiekty ActiveX;) –

1

JavaScript, bez przeglądarki (domyślnie), ma dostęp w dowolnym miejscu w systemie plików. Nie ma nawet odrobiny własnej przestrzeni. Możesz zajrzeć do HTML5 Storage http://www.html5rocks.com/en/features/storage.

Jeśli użytkownik zażąda, aby file.txt z raportem dziennika, można wygenerować wywołanie pobierania i wypełnić zawartość zwróconą z tym, co jest przechowywane w obiekcie magazynu.

+0

Nie chcę, aby użytkownik wiedział o tym istniejącym logu, to jest tylko do celów programistycznych, aby zobaczyć, które przyciski są używane najbardziej – randomizertech

+0

Wtedy całkowicie przegapiłeś temat użycia JavaScript. Wszystko po stronie JavaScript (po stronie klienta) jest widoczne dla każdego. Będziesz chciał przechowywać te dane na serwerze i pobrać je za pomocą wywołań XHR jako swoje najbliższe rozwiązanie. Z jakim skryptem po stronie serwera pracujesz? –

+0

@randomizertech, jeśli klikną przycisk, najprawdopodobniej otrzymasz odświeżenie strony ... wykonasz logowanie na serwerze podczas tego odświeżenia. – MikeSmithDev

5

że masz następujące znaczniki HTML z różnych przycisków

<input type='button' name='button1' class='capture' /> 
<input type='button' name='button2' class='capture' /> 
<input type='button' name='button3' class='capture' /> 

A kiedy kliknięciu przycisku można uzyskać nazwę przycisku i wysłać go do serwera, aby pisać na pliku dziennika z następujących ajax połączenia. Zakładając, że masz PHP po stronie serwera

$(".capture").click(function(){ 

    var buttnName=$(this).attr('name'); 
    $.ajax({ 
     type:"POST", 
     data:"ClickedButton="+buttonName, 
     url: "server.php", 
     success: function(data){ 

     alert('Written in Log File'); 
    } 
    }); // END Ajax 
    }); 

w server.php następujący kod zostanie użyty do pisania na pliku dziennika

$myFile = "logfile.txt"; \\Considering the text file in same directory where server.php is 
    $fh = fopen($myFile, 'w') or die("can't open file"); 
    $stringData =$_POST['ClickedButton'] ; 
    fwrite($fh, $stringData); 
    fclose($fh); 

nie jest proste? Uwaga: Do tego celu potrzebny jest Jquery.

+0

Nie mam żadnego doświadczenia z PHP :(Właśnie wkleiłem to w pliku i zapisałem jako php? – randomizertech

+0

Następnie musisz tylko zmienić kodowanie po stronie serwera, a następnie dobrze iść;) –

Powiązane problemy