У меня есть PHP-файл, который имеет код для эха HTML. Я хотел бы предоставить файл PHP некоторым конечным пользователям, которые можно сделать следующим образом:
<?php include 'file.php'; ?>
К сожалению, у моих пользователей, например, есть index.html, и это не сработает. Я не хочу, чтобы мои пользователи меняли туда HTML-файл на PHP. Другой подход заключается в изменении файла .htaccess:
<Files index.html> AddType application/x-httpd-php .html </Files>
Я тоже не хочу об этом спрашивать. Итак, каковы мои другие варианты? Можно ли отображать эховые результаты в файле HTML? Может быть, с помощью Javascript?
Вы можете сделать это с помощью AJAX. Это может показаться немного сложным, но это, откровенно говоря, намного проще, чем многие думают. На самом деле, это довольно легко.
Ajax входит в ваш код javascript и выглядит следующим образом:
$('#stSelect').change(function() { var sel_stud = $(this).val(); //alert('You picked: ' + sel_stud); $.ajax({ type: "POST", url: "your_php_file.php", data: 'theOption=' + sel_stud, success: function(whatigot) { alert('Server-side response: ' + whatigot); } //END success fn }); //END $.ajax }); //END dropdown change event
Обратите внимание, что данные из файла PHP попадают в ваш HTML-документ в функцию успеха вызова AJAX и должны быть рассмотрены там . Таким образом, вы вставляете полученные данные в DOM.
Например, предположим, что ваш HTML-документ имеет DIV с id="myDiv"
. Чтобы вставить данные из PHP в документ HTML, замените строку: alert('Server-side response: ' + whatigot);
с этим:
$('#myDiv').html(whatIgot);
Presto! Теперь ваш DIV содержит данные, отобранные из файла PHP.
Ajax может быть вызван изменением значения элемента управления (как в приведенном выше примере) или просто при загрузке документа:
$(function() { //alert('Document is ready'); $.ajax({ type: "POST", url: "your_php_file.php", data: 'Iamsending=' + this_var_val, success: function(whatigot) { //alert('Server-side response: ' + whatigot); } //END success fn }); //END $.ajax }); //END document.ready
Посмотрите на этот пример для идей о том, как это работает.
Обратите внимание, что в приведенных выше примерах используется jQuery и поэтому требуется эта ссылка в тегах вашей страницы:
<head> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> </head>
Это заменит тело html-страницы на содержимое URL-адреса.
$('body').load( url,[data],[callback] );
Если они могут добавить javascript, запрос ajax должен выполнить эту работу …
<script> var req = new Request({ method: 'get', url: 'file.php', onRequest: function() { // loading image }, onSuccess: function(response) { document.getElementById("destination").innerHTML = response; } }).send(); </script>
Им также понадобится div для кода, чтобы войти:
<div id="destination"></div>