2016-05-29 15 views
5

Tôi có một sự kiện từ nơi tôi gọi một hàm Ajax. Từ đó chức năng ajax tôi muốn trả về một chuỗi, Nhưng vấn đề là chức năng đó cũng được gọi là một số chức năng khác và trả lại một số giá trị.Cách xóa phản hồi ajax

Vấn đề là ajax được gọi là trang trả lại toàn bộ sting được trả về từ mỗi và mọi chức năng, tôi có nghĩa là Thừa kế.

Ajax tổ chức sự kiện:

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

Bây giờ khi tôi nhìn thấy tại t anh ta response một chuỗi dài của nó, nhưng tôi chỉ cần success làm thế nào tôi có thể xóa các phản hồi khác ??

Cảm ơn trước.

+0

Có một thời gian thực sự khó hiểu sự cố thực sự của bạn là gì và chính xác bạn đang cố làm gì hoặc mã của bạn cần làm gì khác. Nếu chuỗi bạn nhìn thấy trong phản hồi không phải là thành công '' '' hiển thị những gì nó chứa – charlietfl

+0

Tôi chỉ cần 'thành công' để trả lời của tôi, không phải trả lại giá trị khác. –

+0

Vâng, chúng tôi không có ý tưởng gì trong "" some_page.php ";'. Tất cả những gì chúng ta có thể thấy là một tiếng vang đơn giản của "thành công". nếu có bất kỳ điểm trắng nào không phải là không phổ biến cho một strin php sử dụng 'trim()' trong thành công – charlietfl

Trả lời

4

Bạn có thể bufferize sản lượng some_page.php sử dụng output control functions như thế này:

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

Tính năng này phù hợp với tôi. –

+0

Là cần thiết để sử dụng 'ob_start', câu trả lời của tôi đã được đệm .. –

+0

Cảm ơn sự hỗ trợ. Nó làm việc cho tôi. –

1

Có vẻ như bạn đang lặp lại hoặc trở về suối từ một số chức năng bạn đang gọi từ một này. Bạn không nên lặp lại các giá trị/chuỗi trực tiếp từ các hàm.

Giải pháp cho vấn đề của bạn là ob_startob_end_clean() chức năng.

để mã của bạn trông như thế nào.

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

Cảm ơn bạn đã hỗ trợ. –

+0

Bạn được chào đón. –

1

của nó không thể là cửa hàng ajax trở giá trị như Buffer, Bạn kiểm tra tốt hơn chức năng của mình là có bất kỳ echo hay không, tôi chắc chắn bạn có một số tiếng vang trong someFunction.

Chúng tôi sử dụng ob_start() để lưu đầu ra dưới dạng bộ đệm, tôi không nghĩ bạn làm điều đó trong mã của mình.

Nếu chức năng của bạn không có tiếng vang thì chỉ cần sử dụng ob_end_clean() trước echo "success";.

Tôi nghĩ rằng có một số câu trả lời mang tính thông tin cho bạn, tất cả là tốt nhất.

+0

hãy để tôi kiểm tra ... –

+0

Có tôi có một tiếng vang trong chức năng phụ của tôi, Cảm ơn sự hỗ trợ. –

+0

Tất cả tốt nhất, có một cuộc hành trình tốt đẹp trong mã hóa ... –

Các vấn đề liên quan