我有一个事件,我称之为Ajax函数。从那个ajax函数我想返回一个字符串,但问题是该函数还调用了一些其他函数并返回一些值。
问题是ajax调用页面返回从每个函数返回的整个sting,我的意思是继承。
Ajax事件:
$(".close_some").on("click", function(){
$.get("close_some.php", { id : data_id, close_date_time : close_date_time }, function(response){
console.log(response);
if(response === "success"){
document.location.reload(true);
}else{
alert('Some problem');
}
});
});
close_some.php
$col = someFunction($id); //this function also called another function where a return statement works
include_once "some_page.php";
echo 'success';
someFunction()
function someFunction($id){
$sql = "SELECT `demo` FROM `some_problems` WHERE id = '$id'";
...
return departmentName($dept_id);
}
现在当我在response
看到一个很长的字符串时,我只需要success
如何删除其他响应?
先谢谢。
答案 0 :(得分:4)
您可以使用output control functions缓冲some_page.php
的输出,如下所示:
ob_start();
$col = someFunction($id);
include_once "some_page.php";
ob_end_clean();
echo 'success';
答案 1 :(得分:1)
您似乎正在回复或返回您从此处调用的某些函数的流。您不应直接从函数回显值/字符串。
您的问题的解决方案是ob_start
和ob_end_clean()
函数。
所以你的代码看起来像。
<?php
ob_start();
$col = someFunction(....); //this function also called another function where a return statement works
include_once "some_page.php";
ob_end_clean();
echo 'success';
答案 2 :(得分:1)
ajax商店不可能将值返回为Buffer
,你最好检查一下你的函数是否有echo
,我确定你在someFunction
中有一些回音。 / p>
我们使用ob_start()
将输出存储为缓冲区,我认为您不会在代码中执行此操作。
如果您的功能没有回音,则只需在ob_end_clean()
之前使用echo "success";
。
我认为有一些答案可以为您提供最好的信息。