2010-12-29 2 views
1

안녕하세요, Im Google Maps V3을 사용하여 프로젝트를 구현하고 있습니다.

필자가보기에 infowindow가 사용자 입력 데이터를 엽니 다. 그 데이터를 내 데이터베이스에 저장하고 싶습니다.

addMarker 모델 함수는 입력 한 데이터를 가져와 내 데이터베이스에 저장해야합니다. 현재 InfoWindow가 열리고 정보를 입력 할 수 있습니다. 내 모델의 데이터는 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() {} 
Site_model에서

addMarker 모델 기능

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; 
    } 

답변

0

그것은 당신이 "$ _POST의"URI에 쿼리 문자열은 "$의 _GET"를 사용하려고 시도하지만, CodeIgniter를 통해 정보에 접근하려고하는 것 같습니다 액세스 .

응용 프로그램에서의 QueryStrings을 활성화했는지 확인/config.php를 config.php 파일에서 라인 (151) 보통

변경 :

$config['enable_query_strings'] = FALSE; 

사람 :

$config['enable_query_strings'] = TRUE; 

이렇게하면 쿼리 문자열을 사용하여 url에서 "$ _GET"정보를 가져올 수 있습니다. 또한

, 당신은

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

대신 사용 "site_model"에서 처리 기능에 있는지 확인

+0

안녕 존이 도움을 주셔서 감사합니다, 나는 쿼리 문자열을 사용하도록 조정으로 변경

$this->input->post('name'); 
도망. 나는 같은 Dev를 얻고있다. 도구 크롬 오류 : "리소스를로드하지 못했습니다 : 서버가 404 (찾지 못함) --addMarker"상태로 응답했습니다. – RedRory

+0

문제 해결을 위해 "http : // localhost : 8888/robmenot/index.php/site_model/addMarker "는 addMarker 논리를 주석 처리하고"This URL works "를 반향합니다. 그렇지 않은 경우이 문제를 어디에서 해결할 것인지 잘 알 수 있습니다. POST와 같이 GET querystring 데이터를 잘못 사용하는 것 외에 URL과 같은 소리가 연결되지 않습니다. – jondavidjohn

+0

또한 URL을 통해 모델에 액세스하는 것이 이상하다고 생각합니다. MVC 패러다임의 올바른 사용법에 대한 codeigniter 문서를 검토하면됩니다. 일반적으로 컨트롤러에이 정보를 제출하면 논리 또는 처리를 수행 한 다음 모델에 보내서 데이터베이스에 삽입/업데이트됩니다. – jondavidjohn

관련 문제