2012-09-27 4 views
0

를 아래로 스크롤 URL로에 추가. 모두 정상적으로 작동하지만 오류가있는 양식을 다시로드하면 페이지가 다시 맨 위에 표시됩니다. (그것이 새롭게 되었기 때문에). URL 끝에 #id을 추가 할 수있는 방법이 있나요? 그러면 양식이있는 페이지 아래로 더로드 될 수 있습니까? CodeIgniter의 : #ID와로드 뷰 파일 내가 CodeIgniter의에서 폼 검증 클래스를 사용하고 페이지

나는 일을하지만, 오류를 통해 수행 didnt는 redirect('form/form#form, 'refresh')을 시도했다. 그런 다음 POST 배열이 삭제됩니다 페이지를 리디렉션하는 경우

+0

중복으로 닫기 - [여기 내 대답을 참조] (http://stackoverflow.com/questions/12533455/codeigniter-php-loading-a-view-at-an-anchor-point/12537033#12537033) –

답변

0

문제입니다. 따라서 set_value()는 양식을 다시 채울 수 없습니다.

는이

  1. 에 대해 갈 수있는 몇 가지 방법이 세션 라이브러리를 덮어 쓰기가 있습니다. 이 라이브러리 내에서 리디렉션 할 때 게시물 배열을 세션 flash_data에 집어 넣으십시오. 그런 다음 set_value 함수 안에 (그 중 두 개가 있습니다.) 포스트 배열에서 아무 것도 찾을 수 없으면 flashdata를 찾습니다.
  2. set_value 기능을 사용하지 마십시오. 대신 액션 컨트롤러 내부에서 폼 데이터를 flashdata에 넣고 폼 내부에 set_value ('form_field_1') 대신 $ this-> session-> flashdata ('form_field_1')를 사용하십시오.
는 지금까지 리디렉션이가는대로, 당신은 바로 그 일을하고 있습니다.

게으름과 코드를 게시하지 죄송합니다. 이것이 명확하지 않은 경우 알려 주시면 코드를 게시 할 수 있습니다.

0

간단한 양식 유효성 확인 만 하시겠습니까? 그렇다면 set_value를 사용하여 오류 발생 후 양식을 다시 채울 수 있어야합니다. 당신이 CI의 양식 유효성 검사를 사용하는 경우

http://codeigniter.com/user_guide/libraries/form_validation.html#repopulatingform

, 나는 양식을 가정하고있어 컨트롤러에 다시 간다. 컨트롤러는 어디로 가야할지 결정해야합니다.

if ($this->form_validation->run() == FALSE) { 
     $this->load->view('form#anchor'); 
    } else { 
     $this->load->view('formsuccess'); 
    } 

컨트롤러에서 #anchor 태그를 유효성 검사 중에 발생한 오류를 기반으로 동적으로 설정할 수 있어야합니다.