javascript записать в .txt файл по клику - PullRequest
0 голосов
/ 13 февраля 2012

У меня есть несколько приложений SWF, которые открываются в лайтбоксе, когда на странице щелкают ссылку на файл SWF

это чисто стандартная ссылка, необходимая для запуска лайтбокса

<a href"http:// {url} /swf/ {file} .swf">Name</a>

Я пытался реализовать скрипт для записи временной метки (date ('U') в php-кодировании, поскольку это формат, в котором мне нужна временная метка) и значения "href" ссылки, нажатой на txt-файл. ... я использую onClick = "function ()"

но я не могу заставить его работать ....

Я надеюсь, что строки в текстовый файл будут записаны следующим образом

1328984654|http:// {url} /swf/ {file} .swf
1328984829|http:// {url} /swf/ {file2} .swf

я бы предположил, что разрывы строк реализованы с помощью \ r \ n

Мне не обязательно писать расширение файла, однако я бы предположил, что было бы проще просто написать полный URL-адрес ссылки ...

метод, который я использовал, был скрытой формой, которая отправляла onclick, но это не очень экономично, так как мне нужен скрытый iframe бла-бла ...... слишком много работы, когда я думаю, что это может быть реализовано в одном скрипте .. ..

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

onClick="new_function()"

или любой другой вариант, чтобы иметь возможность связать его с функцией ....

Я не очень разбираюсь в javascript, и я знаю, что сценарий кликов должен быть на стороне клиента: (

спасибо заранее, если кто-нибудь может мне помочь, ура

1 Ответ

1 голос
/ 13 февраля 2012

Javascript не имеет доступа к файловой системе сервера и не может ничего записать в файл.Однако вы можете использовать javascript (читать Ajax) для запуска PHP-файла, который записывает любые данные, которые вы отправляете, в файл.

Для запросов Ajax использование jQuery является наиболее простым решением, так как написание XMLHttpRequests в vanilla JSнемного сложнее.В jQuery вы будете делать что-то вроде:

HTML:

<a href"http:// {url} /swf/ {file} .swf" id="mylink">Name</a>

-

$("#mylink").click(function() {
    $.ajax({ 
       type: 'POST', 
       data: {swf : '1328984654|http: {url} /swf/ {file} .swf'}, 
       url: 'write_to_file.php',
       success: function(data) {
          alert('file saved');
       },
       error: function() {
          alert('error');
       }
    });
});

В PHP вы получите данные из суперглобального $ _POST, как:

$data = $_POST['swf'];

Затем используйте file_put_contents или одно из многих других решений для сохранения данных в вашем файле, и, поскольку вы уже работали с формой, я не буду вдаваться в эту часть.Вы также можете сгенерировать метку времени в PHP и добавить, что в то же время нет необходимости делать это в JS.Это, конечно, немного сложнее, например, вам следует выполнить обычную проверку isset на $ _POST и очистить все данные, которые поступают со стороны клиента, но если вы проведете небольшое чтение и тестирование самостоятельно, вы поймете,это мгновенно, это действительно не так сложно, и достаточно нескольких строк кода, чтобы получить базовый пример того, что вы пытаетесь сделать и запустить.

...