2014-02-21 4 views
0

У меня есть форма, содержащая один единственный вход. Есть ли способ проверить, существует ли текстовый файл с тем же именем, что и в поле ввода, при нажатии «отправить»? Поэтому, если вы нажмете «отправить», он должен проверить, соответствует ли введенный вами текст совпадению файла в определенном каталоге с конечным «.txt». Если он существует, должно быть предупреждение, если нет, форма должна быть обработана дальше.html form onclick проверить, существует ли файл

Edit: Как это, кажется, довольно трудно ответить на несколько деталей: Существует форма вида:

<form action="<?php echo 'create-page.php' ?>" method="post"> 
<input type="text" name="newpage" value="" /><br> 
<input type="submit" name="submit" value="Save"> 
</form> 

Если вы cick на «отправить», сценарий должен проверить, файл .txt в каталоге dir/example/существует с именем, которое вы только что ввели, в . Если «да», должно быть указано «Файл найден», если нет, файл формы должен быть отправлен. Надеюсь, теперь это становится яснее ... Я думаю, что нужно что-то вроде php-функции. Но как?

+0

Слишком широкий вопрос. Сузить. –

+0

добавьте кнопку прослушивания кликов для отправки, а функция внутреннего обработчика использует ajax для проверки существования файла. Затем сделайте свой материал на основе результата. –

+0

Несомненно, есть. Но ou понадобится какой-то серверный код, например PHP, ASP, JSP и т. Д. Вы уже работаете с любым кодом на стороне сервера? – LcSalazar

ответ

1

Ваш вопрос не имеет конкретных деталей, и код. Поэтому я не могу точно сказать, что именно вы хотите. Вот три метода, по некоторым вопросам, которые следует изучить при проверке наличия файла.

Функции Javascript/XML: Используется с переменным XML, этот метод является то, что вы бы НЕ хотите попробовать, если запустить локальный. Это возможно, но, тем не менее, боль, если вы все еще хотите использовать этот метод, чтобы проверить, существует ли URL-адрес файла, попробуйте поместить его как функцию. Попробуйте что-то простое, но эффективное. Если вы используете XML-документ или имеете что-то серверное, вы можете попробовать этот метод. Сначала поставьте что-то вроде этого в вашем Javascript ... function fileExists (samename.txt) После этого вам нужно создать XML var, используя функции http. Я рекомендую проверить его с помощью http:open и http:send. Конечно, с любыми var операциями и send вам всегда нужно делать заявление return. Так много хороших сайтов, чтобы учиться об этом. То, что это делает, это в основном создает переменную, которая может заглянуть в ваш сервер и использовать http :, чтобы подсознательно ввести URL-адрес на сервере и посмотреть, найден ли он, а затем возвращает результаты. В более простых терминах этот метод позволяет коду вводить URL-адрес файла на сервере и сообщает, если он нашел какие-либо результаты. Вам нужно настроить это, прежде чем это будет работать отлично. Для получения дополнительной помощи и пример кода о том, как вы можете установить это ... Click Here

Ajax и ASP: Если вы бежите ваши коды на локальном хосте, или еще лучше, не хозяин вообще, это метод, вероятно, станет проще для вас.Обычно используемый и не очень сложный код вообще я бы рекомендовал этот метод, если вы еще не настроили свой код для чего-то другого. В основном это простой Javascript, и он имеет свою собственную функцию, но с этим вы будете более знакомы. Вот пример кода, который на самом деле не требует много для того, чтобы просто вставьте его в свой текущий скрипт ....

<script type="text/javascript" 
    src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script> 
<script type="text/javascript"> 
     $(function() { 
      $('#clickMe').click(function() { 
       var url = $('#fileName').val(); 
       $.ajax({ 
        type: "HEAD", 
        url: samename.txt, 
        success: function (data) { 
         alert("found"); 
        }, 
        error: function (request, status) { 
         alert("not found"); 
        } 
       }); 
      }); 
     }); 
</script> 

После того, как вы есть, что создать <div>, который соответствует сценарию. Вот пример ...

<div> 
     FileName: <input type="text" id="fileName" /><input type="button" value="check" id="clickMe" /> 
    </div> 

Так просто убедитесь, что вы настраиваете filename, файл, который вы хотите проверить. Если вы хотите учиться, а не копировать, продолжайте читать, когда я объясню, что он делает. Если у вас есть этот файл или этот файл может быть сохранен в той же папке, что и указанный выше сценарий, он затем проверяет, есть ли он там, затем использует простую функцию alert, чтобы сообщить вам, нашли ли они что-либо. Вы должны знать, что div - это то, что дает onclick, который вы запросили.

PHP/MySQL Да, это тоже способ проверить URL-адрес файла. Это не главная причина, почему я ее поднял, но это все еще эффективная возможность. Эти способы бесконечны с этим методом. Вот два из PHP. Один, если у него есть URL-адрес файла, а другой - нет. В любом случае эти два варианта используют рекомендуемую функцию file_exists.

Url.php (В принципе, если вы хотите проверить с другого сервера)

<?php 
function fileExists($path){ 
    return (@fopen($path,"r")==true); 
} 
?> 

Короткий, но сложный. Это создает переменную ($Path) и использует оператор @fopen, чтобы открыть все файлы на всех серверах, которые переменная может проверять через ($Path), и вернуть сообщение "r")==true);.

Personal.php (Файл на сервере)

file_exists($path_from_root . '/somedir/file/') 

это все. Это из-за того, что file_exists настолько спокойный, ваша ОС даже начинает играть здесь. Это код, который не требует пояснений и не нуждается в большом объяснении.

Методы PHP/MySQL представляют собой код типа «за» и «против». Есть хорошие вещи, которые выходят из него, например, зная, что существует так много способов повторить его, если что-то пойдет не так. Плохие вещи, однако, действительно могут быть хлопот. Как и в этом случае нет функции onclick, и что PHP не всегда безопасен.

Заключительные мысли: Из-за того, что вы хотите проверить файлы в своей форме html, я настоятельно рекомендую использовать Ajax, чтобы вы не полностью изменяли код. Убедитесь, что вы решили использовать сценарий Ajax выше, что вы удаляете div, и добавьте в свою форму fileName componentetes или в любом месте, где вы хотите проверить файл. Кроме того, у двух других есть вещи, которые можно предложить, но если вы не измените свой вопрос достаточно, чтобы точно знать, что вы хотите, каждый из них - только предложения.

+0

Ничего себе, отличное сравнение, спасибо! –

0

Ну, для этого вам придется каким-то образом передать информацию на сервер. Вы можете сделать это двумя способами: AJAX или простая форма submit.

Извините, но я не думаю, что SO предназначено для написания кода для вас, но чтобы помочь вам найти хотя бы направление. Попробуйте узнать о подаче формы и о AJAX. Тогда у вас будет входное значение на стороне PHP. Там вы можете искать файл и действовать, как хотите, на стороне javascript.

0

Попробуйте использовать ajax ,. Сделайте что-то вроде этого,

<form id="myform" action="<?php echo 'create-page.php' ?>" method="post"> 
    <input type="text" name="newpage" value="" /><br> 
    <input type="button" name="submit" value="Save"> 
</form> 

сценарий

$('body').on('click',"input[name='submit']",function(e){ 
    $.ajax({ 
     url:"filecheck.php", 
     data: $(#myform).serialize(), 
     success:function(data){ 
      if(data){ 
      alert("file matches"); 
      // submit your form or do whatever you want 
      }else{ 
      alert("file doesn't match"); 
      } 
     }, 
     error(error){ 
     } 
    }); 
}); 
Смежные вопросы