使用ajax将数据从视图传递到控制器

时间:2013-10-25 10:17:52

标签: ajax codeigniter

我正在做一个应用程序,它使用ajax从表单字段获取用户输入然后将其连接成一个字符串,这很好但我得到了一个     “POST 500(内部服务器错误”)

并且无法传递数据。如何使用ajax将视图中的字符串传递给控制器​​并在控制器中访问它。

以下是我的代码:

脚本

<script>
 // $(document).ready(function(){
 function saveData(){
 var con =  document.getElementById('tiks').value;
 // var dataString = {'conid':con};
  alert(con);
  var cct = $("input[name=csrf_token_name]").val();

  var base_url = <?php base_url(); ?>;

  $.ajax({
      url: base_url + "welcome/newShortestPath",
      type: "POST",
      data: {'conid':con, 'csrf_token_name':cct},
      success:function(){
        alert("SUCCESS KALUY-I   "+con);
        $('#myForm')[0].reset();
      }
  });
   }

控制器

public function newShortestPath(){
    echo "REACHED";
    $var = $this->input->post('conid');
    //$this -> load -> model('edge_model');
    //$this->edge_model->setConstraints();

}

真的需要你的帮助。提前致谢。 :)

更新

我不再通过在调用base_url()函数时修复错误而得到任何错误,但同时我无法获取传递的数据,是否有其他方式从post发送数据到控制器?

2 个答案:

答案 0 :(得分:2)

您必须echo base_url并使用''

包装您的var
var base_url = '<?php echo base_url(); ?>';

<强>更新

根据您得到的错误:

  

致命错误:调用未定义的函数base_url()

正如您在评论中提到的那样。

你要做的就是去application/config/autoload.php 并找到

$autoload['helper'] = array();

然后将其更改为

$autoload['helper'] = array('url');

或手动加载url帮助程序:

$this->load->helper('url');

了解更多here

答案 1 :(得分:0)

提示:

提示1: 您可以设置所有网址:

var url = <?php echo site_url('welcome/newShortestPath'); ?>;

提示2: 使用site_url()代替base_url()。 base_url必须用于资源(img,css,js等) 要构建URL,请使用site_url()