2017-11-11 267 views
0

我有问题要在jQuery中返回一个数组。我用函数来响应来自mysql的数据,我不得不添加它做数组并返回查看。这就像幻灯片一样,每5秒钟显示一次不同的评论。OpenCart返回数组到JSON并传递给jQuery

这是我的代码: 控制器:

$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; 
    } 


} 

和视图:

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); 

回答

0

我不知道你的Opencart的购物车版本,但尝试out this

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)); 
    } 
+0

是的,这可能是正确的方式的一个例子,但是我的版本是1.5.6.4 .... –

+0

如果有是一种停止对此查询进行缓存的方法...或以其他方式执行...... –

相关问题