php - OpenCart 将数组返回到 JSON 并传递给 jQuery

标签 php jquery mysql arrays opencart

我在 jQuery 中返回数组时遇到问题。我使用函数来响应来自 mysql 的数据,我必须将它添加到数组中并返回以查看。就像幻灯片一样,每 5 秒显示一次不同的评论。

这是我的代码: Controller :

 $this->load->model('catalog/review');
    $current_store = $this->config->get('config_store_id');


    $feedbacks = $this->model_catalog_review->getFeedbacksByStore($current_store);


        $this->data['feedbackscrazys'][] = array(
            'feedback_name'  => $feedbacks['form_name'],
            'feedback_text'  => $feedbacks['feedback'],
        );

型号:

  public function getFeedbacksByStore($id) {
    $sql = "SELECT * FROM " . DB_PREFIX . "feedbackcrazy";
    $sql .= " WHERE shop_id = ".$id." AND show_index=1";
    $sql .= " ORDER BY RAND() LIMIT 10";
    $query = $this->db->query($sql);

    if($query->num_rows > 0) {
        return $query->row;
    } else {
        return 0;
    }


}

和 View :

var feedbacks = function() {
// here i want to replace this code with the results of array
var jsontext ='[{"feedback_author":"Vesela Chobanova","feedback_text"  : "Thanks for the quick delivery and the beautiful clothes! :):)"},{"feedback_author": "Dimitar Nedelchev","feedback_text"  : "You are great! You are one of the few to give sincere and unexpected rewards! Thank you very much!"},{"feedback_author": "Bojidara Karajorova","feedback_text"  : "Thank you for your service responsiveness :)"},{"feedback_author": "Maria Rizova","feedback_text"  : "Thank you very much for the Childrens Gold Contrast Gown. She is very beautiful !! thank you very much ."},{"feedback_author": "Violeta Stefanova","feedback_text"  : "Hello, I ordered several times from Crazy kids. I am very pleased with both the quality of clothes and the service. When I need advice, I always get full co-operation. Thanks!"},{"feedback_author": "Maria Hristova","feedback_text"  : "Excellent quality! Very good attitude and full cooperation. thanks "},{"feedback_author": "Stefka Mihova","feedback_text"  : "Thanks to the quick delivery and the amazing Polish hats. I expect a further load from them"},{"feedback_author": "Daniela Kosova","feedback_text"  : "The delivery was super fast. Thanks. We are very pleased with the clothes we received"},{"feedback_author": "Silvia Purvanova","feedback_text"  : "The dress I received was amazing. Thanks for the quick delivery and the wonderful attitude on the phone"}]';
var json = JSON.parse(jsontext);
var i = 0;
var fnchange = function() {
    $('#footerfeedbackItemContent').animate({'opacity': 0}, 2000, function () {
        $(this).text(json[i]['feedback_text']);
    }).animate({'opacity': 1}, 2500);

    $('#footerfeedbackItemCustomer').animate({'opacity': 0}, 2000, function () {
        $(this).text(json[i]['feedback_author']);
    }).animate({'opacity': 1}, 2500);

    if( ++i < json.length ){
        setTimeout(fnchange, 10000);
    } else {
        i = 0;
        setTimeout(fnchange, 10000);
    }
};
setTimeout(fnchange, 1);


};
setTimeout(feedbacks,1);

最佳答案

我不确定你的 opencart 购物车版本,但试试这个

public function myData(){
     $this->load->model('catalog/review');
    $current_store = $this->config->get('config_store_id');
    $feedbacks = $this->model_catalog_review->getFeedbacksByStore($current_store);

        $this->data['feedbackscrazys'][] = array(
            'feedback_name'  => $feedbacks['form_name'],
            'feedback_text'  => $feedbacks['feedback'],
        );
      //add this line
     json_encode($this->data);

     //if opencart 2.3.x+
    //$this->response->addHeader('Content-Type: application/json');
    //$this->response->setOutput(json_encode($data))  
   }

这是在OpenCart 2.3.x中获取典型JSON数据的例子+

public function about()
    {
        $data['name'] = $this->config->get('config_name');
        $data['version'] = "OpenCart ".VERSION;
        //$data['name'] = $this->config->get('config_name');
        $data['config_address'] = $this->config->get('config_address');
        $data['config_telephone'] = $this->config->get('config_telephone');
        $data['config_address'] = $this->config->get('config_address');
        $data['config_currency'] = $this->config->get('config_currency');
        //the last two lines will return json data
        $this->response->addHeader('Content-Type: application/json');
        $this->response->setOutput(json_encode($data));
    }

关于php - OpenCart 将数组返回到 JSON 并传递给 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47237721/

相关文章:

php - 无法使用 PHP 连接到 OAuth 2.0

javascript - TinyMCE:检测 onLeave()

javascript - 如何在 jQuery 中调用 setinterval?

javascript - 数据表更改列的顺序

python - django:使用Q过滤考虑到空白选择场景

php cron 作业不工作

php - 将现有 WordPress 网站迁移到 Azure 后,导入 xml 内容后显示空白页面

mysql - 路径枚举计数器

php - 如何在 swift 中 http 发布特殊字符

mysql - 在 SQL 查询中用 '*' 替换电子邮件地址中的某些字符