2013-04-22 2 views
0

난에서 간단한 양식을 내 tmpl/default.php :새로 고침 페이지

function addcam() 
{ 
    $add_name=JRequest::getString('cam_name'); 
    $model = &$this->getModel(); 
    $model->AddWebcam($add_name); //send to model to add to DB 
} 

: 나는 값을 처리하기 위해 노력하고있어 내 controller.php 파일에서

<form id='AddForm' action="<?php echo JRoute::_('index.php?option=com_mycomponent&task=addcam'); ?>" > 
      <p> 
      <label for="CamName">Name: 
      </label> 
      <input type="text" id="CamName" name="cam_name" /> 
      </p> 
      <button type='submit' class='submit_cam' name='addcam' value='Add'>Add</button> 
      <button type='reset' class='cancel_changes' name='cancel_changes' value='Cancel'>Cancel</button> 
     </form> 

내 모델에서 나는 단지 쿼리의 결과를 반환합니다. 이 구현을 통해 빈 페이지로 라우팅됩니다. 현재 페이지를 새로 고치고 싶습니다. 일반적으로 action=""을 사용하면되지만, 제 경우에는 컨트롤러에서 addcam이라는 함수로 라우팅해야합니다. 아니면 이것을 할 수있는 더 좋은 방법이 있습니까?

+0

꽤 좋아 보이며 잘 수행되므로 잘 작동합니다. 몇 가지 이상한 항목을 확인하십시오. 나는 따옴표로 액션을 만드는 php를 감쌀 것이다 ('action = ""'). 입력 상자의 이름은 컨트롤러에서 요청한 문자열과 다릅니다 ('cam_name' v.'camname'). –

+0

@DavidFritsch 감사합니다! 어리석은 따옴표. 나는 그것이 내 백성 이었기 때문에 그 질문을 편집했습니다. 그럼 어쩌면 당신은 다음 절름발이 질문에 대한 답변을 알고 :) – Tom

+0

그것은 당신이 그렇게하고있는 것 같습니다. 함수의 마지막에'var_dump ($ add_name);'를 써서이 함수에 전혀 들어가는 지 알 수 있습니까? –

답변

1

Joomla에서 작업을 수행 할 때 공통적으로 사용하는 기술은 해당 함수가 마지막 뷰의 전체 리디렉션을 수행하도록하는 것입니다. 이렇게하면 페이지 새로 고침이 데이터를 다시 제출하지 못하도록하여 클라이언트에 대한 더 깨끗한 URL로 연결됩니다. 이렇게하려면 다음을 시도하십시오.

분명히, 필요한 URL로 JRoute 비트를 업데이트하십시오. 원할 경우 (예 : '저장 됨'과 같은) 메시지를 포함 할 수도 있습니다. http://docs.joomla.org/JApplication::redirect/1.6

+0

브릴리언트, 매력처럼 작동합니다. 고맙습니다. – Tom