2011-01-04 2 views
0

예, 약간의 프로파일 페이지가 수정되었습니다. index.php?mode=profile. 예를 들어, editprofile 형식의 사용자 이름을 사용할 수 있습니다. 사용자 이름은 이미 사용자 이름 필드에 있습니다. 그래서 나는 "Peter"에서 "Tom"으로 변경하고 save를 누릅니다.PHP : 같은 페이지에서 동작을 형성하고 새로 고침까지 계속 동일하게 표시됩니다.

동작은 ?mode=profile&edit=true입니다. 이제 저장을 누르면 피터에서 톰으로 db의 열이 업데이트되었습니다. 그러나이 필드는 refresh (또는 f5) 키를 누를 때까지 "Peter"값을 유지하고 "Tom"이 나타납니다. 그것은 데이터베이스 아무것도 업데이트 된 것처럼 그것은했지만 그것은 여전히 ​​다음 새로 고침 때까지 피터를 보여줍니다 .. 캐시처럼,하지만 그것은 캐시 아무것도 shouldnt?

어떤 도움이 필요합니까? 동일한 "페이지"/ 파일에 있기 때문입니까? 내가 할 수있는 일

+0

작은 코드 스 니펫이 도움이 될 것입니다. –

답변

0

나는 데이터를 먼저 가져 와서 폼에 넣은 다음 데이터베이스 내용을 업데이트한다고 생각한다. 양식을 제출할 때 먼저 데이터베이스 내용을 갱신해야합니다. 양식 가져 오기 및 만들기는 다음 단계 여야합니다.

0

대부분 프로필 수정을하기 전에 페이지를 렌더링하고있는 것 같습니다. 프로필을 렌더링하기 전에 프로필의 변경 사항을 처리해야합니다. 즉, 페이지를 렌더링하기 위해 SELECT 문 앞에 업데이트 값에 대한 모든 데이터베이스 호출이 있어야합니다.

0

양식의 각 입력란에 수행 할 수있는 작업은 해당 입력란의 게시물 값을 반영하는 것입니다. 예를 들어

- 당신은 캐시에서 모든 필드 그 값이 표시됩니다 게시하지 않을 경우이 방법에 의해

<input type="text" name="username" value='<?php echo $_POST['username']?>' /> 

-

사용자 이름 필드의 예를 취할 수 있습니다.

위의 예에서 게시물 데이터를 지우지 않았으므로 정리 된 게시물 데이터 을 실제 시나리오에서 사용하십시오.

+1

특히 데이터를 표시하기 전에 해당 데이터를 지우지 않았으므로 좋지 않은 아이디어입니다. – fredley

+0

@fredley : 나는 청소 부분이 표준이고 @ Karem에 의해 수행 될 것이라고 생각했다. 어쨌든 내 솔루션을 그 노트로 수정했습니다. – Alpesh

+0

.. 같은 청소? – Karem

0

HTTP는 POST와 GET 두 가지 방법을 제공합니다. ? param =로 시작하는 URL은 실제로 GET을 사용하고 있습니다. "GET"은 양식 처리가 멱등수 쿼리 (즉, 페이지 내용이 쿼리에 의해 변경되지 않은 경우) 인 경우에만 사용해야합니다.

양식에서 데이터를 수정하는 경우 POST 방법을 사용해야합니다.

관련 문제