我想知道是否有任何方法可以在AJAX调用之后包含一个php文件,并将包含的文件显示在我的页面中作为响应。
例如,这是一个ajax调用:
$('#id').change(function(){
var selected = $(this).val();
$.ajax({
url: "ajax.php",
type: "POST",
data: "select="+selected,
success: function (data) {
$("#here").html(data);
}
});
});
这是我在php中尝试过的方法,但是我的html上没有显示结果:
if(isset($_POST['select'])){
$post= $_POST['select'];
$class = ClassName::find_by_id($post);
$sql = " sp_SQLStoredproc {$class->id} ";
if($class->hasRows($sql)){
include("include.php");
}
}
有什么方法可以在HTML中显示包含的文件吗?
我试图将我的成功响应从Ajax $("#here").html(data);
更改为$("#here").load(data);
,但它返回了整个页面。
任何建议都会有所帮助。
更新:include.php文件中包含一个长长的html代码和一些类方法
PS。请不要提及脚本是不安全的,我知道这只是示例脚本。
提前谢谢
答案 0 :(得分:1)
为了获取成功数据,您需要返回要包含的数据。请记住,php
在html
中将不起作用,除非它是操作调用。您可以为此安装php
文件,因为它也支持html
。
还需要记住,在将成功数据设置为元素之前,最好控制值并确保获取正确的数据。
if(isset($_POST['select'])){
$post= $_POST['select'];
$class = ClassName::find_by_id($post);
$sql = " sp_SQLStoredproc {$class->id} ";
if($class->hasRows($sql)){
return include("include.php");
}
}
答案 1 :(得分:0)
您可以在缓冲区中设置所有“ include.php” html,然后需要将内容回显到控制台。
<?php
if(isset($_POST['select'])){
$post= $_POST['select'];
$class = ClassName::find_by_id($post);
$sql = " sp_SQLStoredproc {$class->id} ";
if($class->hasRows($sql)){
ob_starts();
include("include.php");
$include = ob_get_contents();
echo $include;
}
}
?>