簡體   English   中英

如何將值從 Controller 發送到 codeigniter 中的模型

[英]How to send values from Controller to model in codeigniter

在視圖文件“(V_tampil_rekomendasi)”中,我做了一個包含緯度和經度值的函數的輸入文本來檢查當前位置。 在結果中,我將它發送到文件控制器並且它起作用了。 我使用 var_dump 函數進行了檢查。 但是當我將它(經緯度)發送到模型文件(M_Metode)時,經緯度值丟失了。 並且將在 V_display_ 推薦上顯示的結果丟失或沒有顯示。 這是我的視圖文件:

<button class="btn btn-primary" onclick="getLocation()">Cek Lokasi Anda</button></p>
<form action="<?php echo base_url().'metode/index'; ?>" method="post">
    <div class="row">
      <div class="col">
        <p class="font-weight-bold">LATITUDE :</p>
        <input class="form-control" type = "text" id = "out_latitude" name="latitude_awal" placeholder="Latitude" readonly/>
      </div>
      <div class="col">
        <p class="font-weight-bold">LONGITUDE :</p>
        <input class="form-control" type = "text" id = "out_longitude" name="longitude_awal" placeholder="Longitude" readonly/>
      </div>
    </div>
    <br>
<input class="btn btn-primary" type="submit" value="Cari Fotografer">
</form>
<table class="table table-bordered" style="margin:20px auto;" border="1">
  <tr>
    <thead class="thead-dark">
      <th>No</th>
      <th>Nama</th>
      <th>Alamat</th>
      <th>Kamera</th>
      <th>Spesifikasi Foto</th>
      <th>Jarak</th>
    </thead>
  </tr>
  <?php
  $no = 1;
  foreach($tb_fotografer as $fg)
  {
    ?>
    <tr>
      <td><?php echo $no++ ?></td>
      <td><?php echo $fg['nama'] ?></td>
      <td><?php echo $fg['alamat'] ?></td>
      <td><?php echo $fg['kamera'] ?></td>
      <td><?php echo $fg['keahlian_foto'] ?></td>
      <td><?php echo $fg['distance']?> Km </td>
    </tr>
  <?php } ?>
</table>

我的 Javascript 檢查當前位置(在查看文件中):

<script>
var view_lat = document.getElementById("tampilkan_lat");
var view_long = document.getElementById("tampilkan_long");
function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else {
        view.innerHTML = "Yah browsernya ngga support Geolocation bro!";
    }
}
 function showPosition(position) {
   var var_latitude  = position.coords.latitude;
   document.getElementById("out_latitude").value = var_latitude ;
   var var_longitude  = position.coords.longitude;
    document.getElementById("out_longitude").value = var_longitude ;
 }
</script>

這是我的控制器:

function index()
{
    $latitude = $this->input->post('latitude_awal');
    $longitude = $this->input->post('longitude_awal');
    $data_latlong = array(
        'latitude_awal' => $latitude,
        'longitude_awal' => $longitude);
    $data_fotografer= $this->m_metode->tampil_data_fotografer($data_latlong);
    $this->load->view('public/pencari/v_tampil_rekomendasi',['tb_fotografer' => $data_fotografer]);
}

這是我的模型:

  function tampil_data_fotografer($data_latlong)
  {
    $latFrom = deg2rad((float)('latitude_awal'));
    var_dump($latFrom);
    $lonFrom = deg2rad((float)('longitude_awal'));
    var_dump($lonFrom);

    $data_fg = $this->db->query("SELECT fotografer_id, nama, alamat, kamera, keahlian_foto, latitude, longitude FROM tb_fotografer");
    $out = [];
        {
          foreach($data_fg->result_array() as $row)
          {
            $keahlianfoto = $row['keahlian_foto'];
            $latTo = deg2rad((float)$row['latitude']);
            $lonTo = deg2rad((float)$row['longitude']);

            $latDelta = $latTo - $latFrom;
            $lonDelta = $lonTo - $lonFrom;
            $distance = (2 * asin(sqrt(pow(sin($latDelta / 2), 2) + cos($latTo) * cos($latFrom) * pow(sin($lonDelta / 2), 2)))) * 6371;
              if ($distance <=1)
              {
                $out[] = array_merge($row, ['distance' => $distance]);
              }
          }
        }

    return $out;
  }

有誰知道是什么問題? 請幫幫我,謝謝

以下代碼(在您的模型中):

$latFrom = deg2rad((float)('latitude_awal')); // (float)('latitude_awal') = 0
var_dump($latFrom);
$lonFrom = deg2rad((float)('longitude_awal')); // (float)('longitude_awal') = 0
var_dump($lonFrom);

應該是這樣的:

$latFrom = deg2rad((float) $data_latlong['latitude_awal']);

$lonFrom = deg2rad((float) $data_latlong['longitude_awal']);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM