2012-03-01 2 views
1

웹에서 검색했지만 해결책을 찾을 수 없습니다. 'samplepage.php'에서 '제출'버튼을 클릭하면 페이지가 'newpage.php'페이지로 리디렉션됩니다. 사용자가 브라우저의 뒤로 버튼을 클릭하면 'samplepage.php'양식 값을 재설정하고 싶습니다. 지금은 모든 텍스트 상자 값, 라디오 버튼 및 확인란 선택을 유지합니다. 의견이 있으면 알려주시겠습니까? 당신의 도움을 주셔서 감사합니다.뒤로 버튼의 양식 재설정

여기 내 리디렉션 PHP 코드입니다.

header ("location:newpage.php); 
+0

테스트를 수행중인 웹 브라우저는 무엇입니까? – user17753

+0

당신은'onload' 이벤트에서 폼의'reset()'메소드를 사용할 수 있습니다 ... – Yaniro

+0

모든 브라우저를 지원해야합니다. – nav100

답변

0

서버 측 코드로 브라우저의 뒤로 버튼을 볼 수 없습니다.

당신은 조금 'popstate'지식과 'pushstate'무대

+1

jQuery가 필요하지 않습니다. :/ – Snuffleupagus

+0

그것은 '필수'는 아니지만 OP의 클라이언트 측 코드에 대한 분명한 이해로 라이브러리와 polyfill을 권장하지 않습니까? – Relic

+0

아마도 사람들에게 4 라인 솔루션을위한 90k 라이브러리를 넘겨주는 대신 사람들이 생각할 수 있다고 생각해야합니다. 그들이 작동하는 방식을 이해하지 않고 수작업으로 코드를 작성하려면 여기에서 시작해야합니다. – Snuffleupagus

-1

지우기 페이지로드의 값으로 자바 스크립트와 jQuery를해야합니다. 오프닝 body 태그에

<input type="text" id="ClearIt" value=""/> 

장소이 :

onload="document.getElementById('ClearIt').value=''" 
0

이 브라우저에 관련된 무언가이다.

당신이 마지막 순간에 (submitting 전) 사용자의 입력을 비우고 약간의 숨겨진 필드에 값을 넣을 수 있습니다 ... 당신이 정말로이 작업을 수행하려는 경우가 페이지로드를 취소해야합니다

0

. 컨트롤이 두 개 이상인 경우 폼을 반복하여 제거해야합니다.

그것은 모든 입력 컨트롤을 얻는다
var elems = document.getElementsByTagName("input") 
for (var i=0;i<elems.length;i++) 
{ 
    elems[i].value = ''; 
} 

이, 그들 모두를 반복하고 빈에 자신의 값을 설정합니다 ... 그들은 모든 항목에있어 가정. 유형에 따라 .checked를 설정하여 라디오 버튼/체크 상자에서이 기능을 확장 할 수 있습니다.

문제에 대한 나의 두 센트, 양식을 지우는 것은 나쁜 생각입니다. 브라우저가 자신의 상태를 유지할 이유가 있습니다.

예를 들어 서버 측에서 유효성 검사가 실패하고 다시 돌아와서 모든 것을 입력해야한다면 나는 행복하지 않을 것입니다. 당신이 노력하고 읽기 : :(

0

당신은

header ("location:newpage.php"); 
die(); 

당신은 또한 $ _POST, $ _GET과 $ _SESSION은

unset($_POST,$_SESSION, $_GET); 
header ("location:newpage.php); 
die(); 

업데이트을 바르을 다시 시도 할 수 있습니다) (죽을 잊어 내역을 다시 설정을 해제하려면 내 위의 내 깨닫지 못했습니다 ...

당신은 일부 입력 코드와 함께 변수를 지우고 양식의 목록을 지우려면 일부 마크 업 코드를 사용하십시오.

어쨌든.JS 양식 사업부

<script type="text/javascript"> 
    // <![CDATA[ 
    var el = document.createElement("input"); 
    el.setAttribute("id", "clearButton"); 
    el.setAttribute("type", "button"); 
    el.setAttribute("value", "Clear"); 
    document.getElementById("FormDiv").appendChild(el); 
    addEvent(el, 'click', function(){ clearForm('form_name');}); 
    // ]]> 
</script> 
0

에서

function clearForm(formIdent) 
{ 
    var form, elements, i, elm; 
    form = document.getElementById 
    ? document.getElementById(formIdent) 
    : document.forms[formIdent]; 

    if (document.getElementsByTagName) 
    { 
     elements = form.getElementsByTagName('input'); 
     for(i=0, elm; elm=elements.item(i++);) 
     { 
      if (elm.getAttribute('type') == "text") 
      { 
       elm.value = ''; 
      } 
     } 
     elements = form.getElementsByTagName('select'); 
     for(i=0, elm; elm=elements.item(i++);) 
     { 
      elm.options.selectedIndex=0; 
     } 
    } 

    // Actually looking through more elements here 
    // but the result is the same. 
    else 
    { 
     elements = form.elements; 
     for(i=0, elm; elm=elements[i++];) 
     { 
      if (elm.type == "text") 
      { 
       elm.value =''; 
      } 
     } 
    } 
} 

function addEvent(elm, strEvent, fnHandler) 
{ 
    return (elm.addEventListener 
    ? elm.addEventListener(strEvent, fnHandler, false) 
    : elm.attachEvent('on'+strEvent, fnHandler) 
    ); 
} 

은 다른 방법도 제안하기 전에 같은 일을 포스터를 할 '으로 onUnload'는 HTML 이벤트를 사용할 수 있습니다. 귀하의 관점에서 볼 때 사건을 일으킬 때 문제가되지 않을 수도 있습니다.

관련 문제