AJAX 返回数据错误


AJAX returning data error?

拜托,你能帮我解决这个问题吗?

我正在按标题或价格对产品进行 ASC 或 DESC 排序。如果我对它们进行 ASC 排序,则没有问题 - 我在 foreach 中循环产品并将生成的字符串添加到变量中。但是,如果产品对 DESC 进行排序,则存在问题 - 我通过 foreach 循环它们,但 html 没有添加到变量中(我试图print_r变量$products,所以我知道,它不是空的..) - 我希望如果你看看下面的代码,我的问题会很清楚。你知道,哪里可能有问题?谢谢。

我也尝试不通过 ajax 调用此代码,而是转到 ajax 脚本的 url 并且行为是相同的......

编辑:在将$products_html添加到$return['products_html']之前,我试图回显$products_html,并且在$products_html正确生成了html...我很困惑这是什么意思...

编辑2:当我print_r $return时,一切都很好 - 产品 html 存储在 $return['products_html'] 中。问题是,当我json_encode它时。但我真的不知道,问题出在哪里...

这是代码:

$products_html = '';
$products = $this->products_model->get_products_specified($filter); // here i load products into variable
foreach($products as $product){ // here i loop them
            $products_html .= view_loader('products/product_small', array('product' => $product), true); // view load returns html for product
        }
$return['products_html'] = $products_html;
        $return['params_url'] = base_url().'individual/'.generate_url_from_parameters($filter);
        $return['status'] = 1;
        $return['filter'] = $filter;
        echo json_encode($return); // echo for ajax return

如果您要排序的字段的数据类型不是像 varchar 这样的数值数据类型,那么这可能是问题所在。