2014-02-17 1 views
0

Я пытаюсь сформулировать эту идею: у вас есть кнопка загрузки. Когда вы нажимаете кнопку, это должно доказать, существует ли файл. Когда он существует, он должен начать загрузку файла, если нет, то должно быть предупреждение.доказать существующий файл через php и javascript

Я знаю, как доказать, если существует файл с помощью PHP:

if (file_exists(dirname(__FILE__).'/downloads/rawData.zip')) { 
    echo '<script type="text/javascript" language="Javascript"> 
    location="downloads/rawData.zip" 
    </script>' 
    ; 
} else { 
    echo '<script type="text/javascript" language="Javascript"> 
alert("Sorry, no file.") 
</script>'; 
} 

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

есть решение, как я могу решить проблему?

+0

Как на кнопку ссылаются на жестко закодированное имя файла –

+0

, на самом деле это не ссылка. Я использовал ссылку на функцию javascript, которая загружала только файл. – fjw

+0

Так в чем же проблема. Вы стреляете нажатием кнопки, затем запускаете сценарий выше? –

ответ

0

Что вам нужно, это решение, такое как AJAX. Как только пользователь нажимает на кнопку, вы делаете запрос на свой PHP-скрипт, который затем возвращает значение, на основе которого вы можете сделать следующий шаг.

Вот пример того, как добиться этого, используя библиотеку jquery.

$('#form').submit(function(event) { 
    event.preventDefault(); 
    $.ajax({ 
     type: 'POST', 
     url: 'file-exists.php', 
     data: $(this).serialize(), 
     dataType: 'json', // could be plain-text as well; depends on your use-case 
     success: function (data) { 
      console.log(data); 
      //do whatever you want based on this data 
     } 
    }); 
}); 

Вы также можете избежать использования библиотеки, но это затруднило бы объяснение. Вы можете больше узнать о том, как это сделать, здесь: http://blog.mgechev.com/2011/07/21/ajax-jquery-beginners/

+0

спасибо! это работает для меня отлично! – fjw

 Смежные вопросы

  • Нет связанных вопросов^_^