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 usetrim()
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
3 Answers
Reset to default 4You 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.