2012-01-10 3 views
0

내 문제를 해결하는 방법을 찾도록 도와 주시겠습니까?다른 필드 뒤에 데이터베이스 정보로 텍스트 상자를 채우는 방법 lostfocus

텍스트 상자 필드가 number, key, firstnamename입니다.

필자가 채우고 난 후 숫자 필드에서 표를 만들 때이 번호가 존재하는지 데이터베이스에 체크인하고 싶습니다.

그렇다면 내 응용 프로그램에서 이름과 첫 번째 이름을 내 데이터베이스에 연결된 번호를 선택하고 다른 필드 이름과 이름을 입력 한 다음이 필드를 비활성화해야합니다.

아약스를 사용해야한다고 생각하지만 아약스와 젠드를 사용하여이를 달성하는 방법을 모르겠습니다.

나는 웹을 검색했는데 이해가 안되는 튜토리얼을 발견했다.

단계별로 설명해 주시겠습니까?

감사

+0

페이지를 표시 할 때 양식을 채우시겠습니까? 질문을 현재 코드로 설명하십시오. 우린 당신을 도울 수 있어요. –

답변

1

그냥 일반 브러쉬 :

  1. Zend_Form를 사용하여 표준 방식으로 양식을 생성합니다.
  2. 클라이언트 측 (예 : jQuery 사용)에서 onchange 처리기를 숫자 필드에 연결하십시오.
  3. onchange 처리기는 db lookup을 수행하는 checkNumberExistsAction()과 같은 액션에 AJAX 호출을합니다. 확인 결과가 포함 된 JSON 형식의 정보를 반환하십시오.
  4. AJAX 호출의 성공 함수는 반환 결과를 확인하고 다른 요소를 채우고 비활성화합니다.

기억해야 할 점 : 비활성화 된 필드 제출을 막기 위해이 클라이언트 측 처리에만 의존하지 마십시오. 사용자는 클라이언트 측에서 스크립트를 비활성화 할 수 있으므로 서버 측 유효성 검사도 수행해야합니다.

sampleview.phtml

echo '<div id="a">'.$this->form.'</div>'; 

<?php $this->jQuery()->onLoadCaptureStart(); ?> 
jQuery('#category').change(checkNumberExistsAction); 
<?php $this->jQuery()->onLoadCaptureEnd(); ?> 


<script type="text/javascript"> 
    function checkNumberExistsAction(){   
    var p = $("#idOfNumberField").val(); 
    var response = $.ajax({ 
     url: "<?php echo $this->url(array('controller'=>'index', 
'action'=>'sampleview')) ?>", 
     type: "GET",  
     data: {number: p}, //where number is number columnName in database 
     cache: false, 
     success: function(text){ 
      response = text; 
      $("#name").val($(text).find("input[name='name']").val()); //where name is id of name field 
      $("#name").attr("disabled", "disabled"); 
      $("#firstName").val($(text).find("input[name='firstName']").val()); //where firstName is id of first name field 
      $("#firstName").attr("disabled", "disabled");    
}, 
error: function(){ alert('Something went wrong.'); } 
    }); 
} 
</script> 

IndexController.php

public function sampleviewAction(){ 
    if ($this->getRequest()->isXmlHttpRequest()){ 
     $id = $this->_getParam('number', 0); 
     if ($id > 0){ 
     $albums = new Application_Model_DbTable_Albums(); 
     $form->populate($albums->getAlbum($id));}  
     } 
} 

:

0

내가 완전히 게시물이 골격 코드를 접근 @ 데이비드하고이를 기념하기 위해 동의 Modelsampleview.php

public function getAlbum($id){ 
    $id = (int)$id; 
    $row = $this->fetchRow('e_recNo = ' . $id); 
    if (!$row){ 
    throw new Exception("Could not find row $id"); 
    } 
    return $row->toArray(); 
} 
관련 문제