【问题标题】:passing value to controller in codeigniter using ajax in jquery mobile在jquery mobile中使用ajax将值传递给codeigniter中的控制器
【发布时间】:2012-03-11 00:25:10
【问题描述】:

我正在尝试将纬度和经度值传递给名为 Add 的控制器中的索引函数。 google chrome 浏览器显示正确的地理位置,但是当我尝试使用$this->input->post('latitude)、$this->input->post('longitude') 在控制器中传递值时,这些是空白的。有什么想法吗?

<script type="text/javascript">
      $(document).ready(function(){
          get_location();
      });

      function get_location()
      {
          if(navigator.geolocation)
          {
          register_coords(navigator.geolocation.getCurrentPosition());
          }
      }

      function register_coords(position)
      {
          var latitude = position.coords.latitude;
          var longitude = position.coords.longitude;

          $.post("http://mysite:8888/add", {latitude:latitude, longitude:longitude});
      }

     console.log(position.coords);
  </script>

Uncaught ReferenceError: position is not defined

【问题讨论】:

  • 首先,通过对这两个值执行简单的 javascript alert() 检查纬度和经度实际上是否包含值。然后检查您的 httpd 日志记录,或者如果您的控制器有日志记录,查看 ajax 后调用是否真的进行了?
  • 首先所有值都在警告javascript窗口中正确打印出来。

标签: php javascript ajax codeigniter google-maps-api-3


【解决方案1】:

您切换了参数和函数调用。它应该是: register_coords(navigator.geolocation.getCurrentPosition());

编辑:完整答案

【讨论】:

  • 好的,我在脚本末尾添加了 console.log(position.coords),这是错误:Uncaught ReferenceError: position is not defined。有什么想法吗?
  • 什么都不起作用...出现另一个错误:未捕获的ReferenceError:未定义位置未捕获的错误:TYPE_MISMATCH_ERR:DOM Exception 17
  • 您是否 100% 确定 navigator.geolocation 具有价值?在 get_location if console.log(navigator.geolocation.getCurrentPosition) 中执行此操作并告诉我开发工具中有什么
  • 这是我在执行 console.log(navigator.geolocation.getCurrentPosition()) 时显示的错误:未捕获错误:TYPE_MISMATCH_ERR:DOM 异常 17(匿名函数)
  • 它很难帮助你,因为我不知道你在使用什么,但你是否在加载这个脚本之前加载了另一个执行 navigator() 的文件?你确定 getCurrentPosition() 返回一个值吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-18
相关资源
最近更新 更多