Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何根据用户选择的内容包含php文件_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 如何根据用户选择的内容包含php文件

Javascript 如何根据用户选择的内容包含php文件,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有很多div,可能是一打或两个,比如 <div class="mydivs" id="firstdiv"></div> <div class="mydivs" id="seconddiv"></div> <div class="mydivs" id="thirddiv"></div> <div class="mydivs" id="forthdiv"></div> <div class="my

我有很多div,可能是一打或两个,比如

<div class="mydivs" id="firstdiv"></div>
<div class="mydivs" id="seconddiv"></div>
<div class="mydivs" id="thirddiv"></div>
<div class="mydivs" id="forthdiv"></div>
<div class="mydivs" id="fifthdiv"></div>

等等

当用户单击这些div中的任何一个时,我希望将名为(this.id).php的唯一php文件加载到这些div中

$(".mydivs").click(function(){
    $(this).html("<?php include " + this.id + ".php ?>");
});
$(“.mydivs”)。单击(函数(){
$(this.html(“”);
});

这怎么可能呢?

既然您已经在使用jQuery,那么您可以执行以下操作

$(".mydivs").click(function() {
    var that = this;
    $.get(this.id + ".php", function(data, status) {
        $(that).html(data);
    };
});
它是异步的,所以您可能还需要一个小微调器或其他东西来显示正在加载的内容


这也将消除任何安全问题。例如,如果今天的代码是从用户输入读取的,例如
getFile.php?file=1.php
,那么您将遇到问题。如果文件不存在,上面的当前代码将简单地返回404。它不是
包括
,它只是用AJAX获取页面,浏览器不需要这些代码也可以做到这一点。

我不太确定这样做是否安全。您不应该使用用户输入来为PHP选择文件
include
。用户的请求很容易被操纵——它们可能包含您不希望它们包含的脚本,或者,如果服务器配置不正确,则可能包含他们自己的带有恶意代码的PHP文件


如果您只想加载其他页面,请改用AJAX,并始终检查所请求的资源是否是您希望用户看到的内容。

您需要使用AJAX来实现这一点。您能解释一下吗?PHP是服务器端,javascript是客户端。当您使用javascript时,该页面的PHP已经由服务器加载并交付。那么,我猜你想在另一个页面加载中包含这些内容?