Передайте переменные Javascript $ _GET в модель CodeIgniter через AJAX - PullRequest
1 голос
/ 29 декабря 2010

Доброе утро, я использую Google Maps V3 для реализации проекта.

На мой взгляд, открывается информационное окно, в котором пользователь вводит данные. Я хочу сохранить эти данные в моей базе данных.

Моя модель модели addMarker должна получить введенные данные и сохранить их в моей базе данных. В настоящее время открывается информационное окно, и я могу ввести информацию. Но эти данные не отправляются Функция addMarker в моей модели.

function saveData() {


      var name = escape(document.getElementById("name").value);
      var item = escape(document.getElementById("item").value);
      var type = document.getElementById("weapon").value;
      //var latlng = marker.getPosition();
     var url= "http://localhost:8888/index.php/site_model/addMarker?name="+ name
    +"&item="+item+"&weapon="+weapon;

 downloadUrl(url, function(data, responseCode) {
        if (responseCode == 200 && data.responseText <= 1) {
          infowindow.close();
          document.getElementById("message").innerHTML = "Location added.";
        }

else
    {alert('NOT done');
    alert('TEST');
    }
      });

function downloadUrl(url, callback) {
      var request = window.ActiveXObject ?
          new ActiveXObject('Microsoft.XMLHTTP') :
          new XMLHttpRequest;

      request.onreadystatechange = function() {
        if (request.readyState == 4) {
          request.onreadystatechange = doNothing;
          callback(request.responseText, request.status);
        }
      };

      request.open('GET', url, true);
      request.send(null);
    }

    function doNothing() {}

функция addMarker Model в Site_model

function addMarker()
    {
        $data = array(
            'name' =>$this->input->post('name'),
            'item' =>$this->input->post('item'),
            'lat' =>$this->input->post('lat'),
            'lng' =>$this->input->post('lng'),
            'weapon' =>$this->input->post('weapon'),
            'injured' =>$this->input->post('injured')
        );

        $insert = $this->db->insert('data', $data);
        return $insert;
    }

1 Ответ

0 голосов
/ 29 декабря 2010

Похоже, вы пытаетесь использовать строку запроса "$ _GET" в URI, но пытаетесь получить доступ к информации через доступ Codeigniter к "$ _POST".

Убедитесь, что вы включили строки запросов в вашем приложении / config.php

, обычно это строка 151 в config.php

Изменение:

$config['enable_query_strings'] = FALSE;

Кому:

$config['enable_query_strings'] = TRUE;

Это позволит вам использовать строки запросов для получения информации "$ _GET" из URL.

Также убедитесь, что в вашей функции обработки в "site_model" вы используете

$this->input->get('name');

вместо

$this->input->post('name');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...