2014-01-08 3 views
0

내가 코드에서 다음과 같이 조금 보이는 CodeIgniter의 양식이없이 CodeIgniter는 다시 자신을 보여줍니다게시물 값이 양식 다음 AJAX

<?php echo form_open_multipart('admin/updateperson', array("id" => "updateform")); ?> 
    <input placeholder="First name" name="fname" id="fname" value="<?= form_prep($person->fname) ?>" /> 
    <?= form_submit("save", "Save"); ?> 
<?php echo form_close(); ?> 

내가 저장을 칠 수 있도록하려면, 그리고이 업로드 된 데이터를 데이터베이스에 저장 한 컨트롤러로 이동 한 다음 처음에 양식을 보여준 컨트롤러로 나를 전달하면 업데이트 된 세부 정보가 표시된 동일한 페이지로 돌아갑니다.

저는 현재 업로드 컨트롤러에서 redirect 호출로 제한적으로 성공했습니다. 따라서 CodeIgniter는 요청을 데이터베이스에서 읽은 원래 컨트롤러로 정상적으로 라우팅하고 첫 번째 위치와 같이 폼을 표시합니다. 이런 종류의 작품들.

그러나 버그가 있습니다. 이 데이터베이스의 데이터를 업데이트하는 동안 나에게 원래 양식을 보여 주며 이전 값을 보여줍니다! 이것들은 F5를 누르거나 페이지에 다시 들어가서 지울 수 있지만 나 빠진다.

더 좋은 방법이 있나요? 나는 set_form을 사용하는 것에 대해 생각할 것입니다.하지만 검증이 실패 할 때만 설계되었습니다.

+0

나는 비슷한 일을 전에 했어. $ person-> fname에 업데이트 된 데이터가 포함되어 있고 데이터베이스를 업데이트하기 전에 "$ person-> fname"을 채우지 않은 것입니까? (특히이 경우에는 문제가되지는 않지만 확인 할만한 가치가 있음을 알고 있습니다) –

+0

Hmmm I don ' 그렇게 생각하지 마라. 리디렉션 호출을 통해 살아남을 수 있습니까? –

+0

아니요 ...하지만 리디렉션 이후에 뭔가를하고있는 중이십니까? –

답변

0

당신은 당신이 다음 페이지에서 볼 수 있도록 유지하기 위해 필요한 모든 데이터를 저장하는 데 필요한 양식 제출 후 redirect를 사용하는 경우,

당신 preferr으로 Session, Cookie, Url or HTML5 local and/or session storage

에 데이터를 저장할 수

:)

+0

내가 리다이렉트하고있는 페이지가 DB 뒤에 모든 새로운 정보를 읽어야하는 컨트롤러를 가지고 있더라도? –

+0

죄송합니다. 감사하지 않은 답변을 보내지 않았습니다. 답장을 보내 주셔서 감사합니다. –