如何根据ajax或内部调用回显或返回值

时间:2015-06-01 18:25:35

标签: javascript php jquery ajax

我有一个名为ProductDetails的班级。我在这个类中有一堆方法应该返回一个值(如果在类中调用该方法)或者应该回显它,如果该方法是作为ajax调用的结果调用的。

我的ajax处理程序是一个名为gateway.php的文件。我在其中执行以下操作:

$p = new ProductDetails($productId);
$p->getRecentProductFeedback();

现在在ProductDetails班级中,getRecentProductFeedback()会生成一系列反馈数据。我用它做的是:

public function getRecentProductFeedback()
{
    //...code to get recent feedback as array
    $this->echoReturn($feedbackArray);
}

echoReturn()函数用于处理是否应回显或返回结果(基于调用是否为AJAX)

public function echoReturn($data)
{
        if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) 
        && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
        {
            if(is_array($data))
            {
                echo json_encode($data);
            }
            else
            {
                echo $data;
            }
        }
        else
        {
            return $data;
        }
    }

这很好用。现在我的问题是,在我的课程中,我有另一个方法,getSimilarProducts()(我的网关也称它)需要调用getRecentProductFeedback()

所以这个ajax调用的gateway.php是:

$p = new ProductDetails($productId);
$p->getSimilarProducts();

在ProductDetails类中:

public function getSimilarProducts()
{
    //...code to get similar product and then..
    $this->getRecentProductFeedback();
}

问题是,在上面调用getRecentProductFeedback时,echoReturn()总是回显数据,但我希望它被返回..

如何在最小程度中断代码的情况下处理此问题? :(

因为我有很多函数最终会echoReturn ...理想情况下我希望函数可以调整,这样如果echoReturn调用是在类中进行的,它总是会返回其他函数它呼应。

有没有办法实现这个目标?提前谢谢!

0 个答案:

没有答案