将PHP结果放在HTML页面中
我有一个PHP文件,其代码可以回显一些HTML。 我想向一些最终用户提供PHP文件,可以这样做:
不幸的是,我的用户将拥有index.html,这将无法正常工作。 我不想让我的用户将HTML文件更改为PHP。 另一种方法是修改.htaccess文件:
AddType application/x-httpd-php .html
我也不想问他们这个问题。 那么我的其他选择是什么? 是否可以在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文件中的数据在AJAX调用的成功函数中进入HTML文档,必须在那里处理。 这就是您将接收到的数据插入DOM的位置。
例如,假设您的HTML文档具有id="myDiv"
的DIV。 要将PHP中的数据插入到HTML文档中,请替换line: alert('Server-side response: ' + whatigot);
有了这个:
$('#myDiv').html(whatIgot);
普雷斯托! 您的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,因此在页面的标记中需要此引用:
这将用调用的url的内容替换html页面的主体。
$('body').load( url,[data],[callback] );
如果他们可以添加javascript,ajax请求应该做的工作……
他们还需要一个div代码才能进入: