如何清除ajax响应

时间:2016-05-29 05:46:33

标签: javascript php jquery ajax

我有一个事件,我称之为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如何删除其他响应?

先谢谢。

3 个答案:

答案 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_startob_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";

我认为有一些答案可以为您提供最好的信息。