Разместить результаты PHP внутри HTML-страницы

У меня есть PHP-файл, который имеет код для эха HTML. Я хотел бы предоставить файл PHP некоторым конечным пользователям, которые можно сделать следующим образом:

<?php include 'file.php'; ?> 

К сожалению, у моих пользователей, например, есть index.html, и это не сработает. Я не хочу, чтобы мои пользователи меняли туда HTML-файл на PHP. Другой подход заключается в изменении файла .htaccess:

 <Files index.html> AddType application/x-httpd-php .html </Files> 

Я тоже не хочу об этом спрашивать. Итак, каковы мои другие варианты? Можно ли отображать эховые результаты в файле HTML? Может быть, с помощью Javascript?

Solutions Collecting From Web of "Разместить результаты PHP внутри HTML-страницы"

Вы можете сделать это с помощью 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>