2012-02-20 10 views
0

Addという名前のコントローラのインデックス関数に緯度と経度の値を渡そうとしています。 google chrome browserは正しくgeolocationを表示しますが、$this->input->post('latitude)を使用してコントローラに値を渡そうとすると、$this->input->post('longitude')は空白になります。いくつかのアイデア?jqueryモバイルでajaxを使用してcodeigniterのコントローラに値を渡す

<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 
+0

まず、latittudeと経度が実際にこの2つの値の簡単なjavascriptのアラートを()実行して値で構成されていることを確認してください。その後、あなたのhttpdのロギングをチェックするか、コントローラにロギングがあるかどうか、ajaxのポストコールが実際に行われたかどうかを確認してください。 – Jasonw

+0

まず、値はアラートのjavascriptウィンドウに正しく出力されます。 –

答えて

0

パラメータと関数呼び出しを切り替えました。それは次のようになります。 register_coords(navigator.geolocation.getCurrentPosition());

編集:全体の答え

+0

ok私はスクリプトの最後にconsole.log(position.coords)を追加しました。これはエラーです:Uncaught ReferenceError:位置が定義されていません。いくつかのアイデア? –

+0

更新された応答を参照してください – Mike

+0

何も動作しません...別のエラーが表示されます:Uncaught ReferenceError:位置が定義されていません キャッチコピーエラー:TYPE_MISMATCH_ERR:DOM例外17 –