2014-02-28 121 views
0

载入建设者控制器阿贾克斯控制器功能(笨)不能正常工作

<a class = "button tiny" href = "<?php echo site_url('builder/app/'.$experiment->eid); ?>"> Edit </a> 

笨控制器

class Builder extends MY_Controller{  
    public function index(){ 
     $data['title'] = 'Experiment'; 
     $data['main_content'] = 'experiment/add_experiment_form'; 
     $this->load->view('_main_layout', $data); 
    } 

    public function app($eid = 0){ 
     $data['title'] = 'Experiment'; 
     $data['eid'] = $eid; 
     $data['main_content'] = 'experiment/add_experiment_form'; 
     $this->load->view('_main_layout', $data); 
    } 

    public function save() { 
     $message = $this->input->post('msg'); 
     echo $message; 
    } 
} 

JAVASCRIPT

$("#getObjectValues").click(function() { 
      var msg = '['; 
      for(i=1; i<$.count; i++){ 
       if (i!=1) {msg+=","} 
       var offset = $('#obj'+i).offset(); 
       var xPos = offset.left; 
       var yPos = offset.top; 
       msg += "("+xPos+","+yPos+")"; 
      } 
      msg += ']'; 

      $.ajax({ 
       url:"builder/save", 
       type:"POST", 
       data:{'msg':msg}, 
       success: function(data) { 
        alert('success '+data); 
        window.location.href = "<?php echo site_url($this->session->userdata('active_role').'/experiments'); ?>"; 
       } 

      }); 
     }); 

从另一个HTML文件触发点击编辑按钮来自构建器控制器的应用程序功能。然后它加载页面add_experiment_form与提供的JavaScript是一个单独的HTML文件。当点击getObjectValues button时,变量msg收集一些信息。然后使用ajax,我将msg传递给控制器​​function save()。问题出现的时候我在alertvariable s就成功了。它会提示add_experiment_form的原始HTML,而不是save() function$message

的事情是,当我改变button's href只是'builder',整个系统工作正常,这意味着success function alerts正确的信息,而不是整个HTML代码。

+0

检查URL是确定或没有我的意思是开放site_ur + /建设者/保存的网址在浏览器和赤发生什么事,然后调用通过Ajax – SKG

回答

0

使用echo json_encode($message);然后在成功响应

var = $.parseJSON($data); 
alert (json) 
+0

该网址我已经编辑我的代码从'echo $ message';'echo'json_encode($ message);'并且在我的js上,'success:function(data){var json = $ .parseJSON(data);警报(JSON);}'。控制台打印此错误:SyntaxError:JSON.parse:意外字符 –

+0

请显示您的数据什么是编码警报(数据)然后到json –