最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to clear ajax response - Stack Overflow

programmeradmin1浏览0评论

I have an event from where i call an Ajax function. From that ajax function i want to return a string, But the problem is that function also called some other functions and return some value.

The problem is the ajax called page return the whole sting that is returned from each and every functions, i mean Inherited.

Ajax Event:

$(".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);
}

Now when i see at the response its a long string, but i need only the success how can i remove other responses??

Thanks in Advance.

I have an event from where i call an Ajax function. From that ajax function i want to return a string, But the problem is that function also called some other functions and return some value.

The problem is the ajax called page return the whole sting that is returned from each and every functions, i mean Inherited.

Ajax Event:

$(".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);
}

Now when i see at the response its a long string, but i need only the success how can i remove other responses??

Thanks in Advance.

Share Improve this question edited May 29, 2016 at 5:57 asked May 29, 2016 at 5:46 user6364857user6364857 10
  • Having a really hard time understanding what your real problem is and what exactly you are trying to do or what your code needs to do differently. If the string you see in response isn't "success" show what it contains – charlietfl Commented May 29, 2016 at 5:51
  • I need only success to my response, not other returned value. – user6364857 Commented May 29, 2016 at 5:52
  • Well we have no idea what is in "some_page.php";. All that we can see is one simple echo of "success". if there is any estra whitepsce which isn't unmon for a php strin use trim() in success – charlietfl Commented May 29, 2016 at 5:53
  • in the someFunction function i have some returned value that is concatenate to the response.. – user6364857 Commented May 29, 2016 at 5:54
  • OK.. and how are we to help with that when we can't see any of that code? – charlietfl Commented May 29, 2016 at 5:55
 |  Show 5 more ments

3 Answers 3

Reset to default 4

You can bufferize output of some_page.php using output control functions like this:

ob_start();
$col = someFunction($id);
include_once "some_page.php";
ob_end_clean();
echo 'success';  

It seems you are echoing or returning streams from some functions you are calling from this one. You shouldn't echo values / strings directly from functions.

The solution for your problem is ob_start and ob_end_clean() functions.

so your code will look like.

<?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';

Its not possible that ajax store returned value as Buffer, You better check your functions is there any echo or not, I am sure you have some echo in the someFunction.

We use the ob_start() to store the output as buffer, i don't think you do it in your code.

If your function has no echo then simply use ob_end_clean() before the echo "success";.

I think there are some answers which is informative to you, all the best.

发布评论

评论列表(0)

  1. 暂无评论