2017-01-25 6 views
0

관련을 같은 창/탭에 새 위치를 열고, POST로 값을 전달 :앵커 태그 -

Make a link use POST instead of GET

Making href (anchor tag) request POST instead of GET?

가 어떻게 그것을 만들 수 있습니다 사용자가 클릭 할 때, 그래서 링크를 클릭하면 이전 페이지의 입력 내용과 함께 새 페이지로 리디렉션됩니까? 나는 POST 요청으로 작업해야하며, 은 연결된 (및 기타 여러 가지) 답변에서 제안 된대로 숨겨진 양식 (또는 해당 추가 양식)을 사용하고 싶지 않습니다. 이것도 가능합니까?

<form role="form" id="myForm" method="post" action="stuff.php"> 
    <div class="form-body form-body-dark"> 
     <div class="form-actions"> 

      <div class="row"> 
       <!-- various inputs go here --> 
      <input type="text" name="userID"> 
      </div> 

      <div class="row"> 
       <div class="col-md-6 col-xs-6"> 
        <button type="submit" id="doStuff" class="btn btn-primary btn-lg btn-block"><i class="fa fa-check"></i> Submit</button> 
       </div>          
       <div class="col-md-6 col-xs-6"> 
        <a href="index.php" id="cancel" class="btn btn-danger btn-lg btn-block"><i class="fa fa-refresh"></i> Cancel 
        </a> 
       </div>          
      </div> 

     </div> 
    </div> 
</form> 

을 지금은 같은 입력의 일부를 제출하는 또 다른 방법을 추가 할 필요가 있지만, 다른 PHP 페이지에, 다음과 같이 (I 훨씬을 변경할 수 없습니다거야)

내 현재 설정입니다 . 앵커 태그와 POST 요청으로이를 수행하고 싶습니다. 즉 상기 제 버튼 앞에 삽입한다 코드 블록은 (전송), 그러나 동일한 형태 :

HTML

<div class="col-md-4 col-xs-4"> 
    <a onclick="goToOtherPage()" id="details" class="btn btn-success btn-lg btn-block"> 
     <i class="fa fa-table"></i> Details 
    </a>         
</div> 

jQuery를

function goToOtherPage() { 
    var otherPage = "details.php"; 
    $.post(otherPage, { 
     'userID': $('#userID').val() 
    } 
} 

내부 window.location.href = 'details.php' 추가 이 함수는 userID를 전달한 직후에 새 페이지를 열지 만 전달하고자하는 매개 변수는 없습니다.

쿠키를 설정 및 설정 해제하고 전체 POST/GET 문제를 우회하는 방법을 생각해 보았습니다.하지만 실행 가능한 옵션은 아닙니다.

+0

인가 이 여러 페이지 양식 또는 뭔가? 그래서 그들은 '다음 단계'로 계속 나아가고 데이터를 계속 작성하고 싶습니까? 사용 사례에 대한 이해를 얻으려고 ... –

+0

사실, 아니요. 여기에 게시 된 코드는 전화 번호부 웹 앱과 같은 것으로부터 발췌 한 것으로, 연락처를 빨리 입력 할 수 있도록되어 있습니다. 추가 할 앵커 태그는 추가 정보를 입력 할 수있는 세부 정보 페이지로 연결됩니다. 그것은 그것의 요지입니다. – FiddlingAway

답변

1

쿠키 대신 SessionStorage API를 사용하여 일부 데이터를 한 페이지에 저장하고 다른 페이지에 액세스 할 수 있습니다. sessionStorage MDN을보세요.

단순히 goToOtherPage 콜백과 같은 데이터를 저장 : 나중에

sessionStorage.setItem('formData', {}); 

그리고를, 다음 페이지에, 당신은을 통해 이전 페이지에 저장된 데이터에 액세스 할 수 있습니다

sessionStorage.getItem('formData'); 
+0

안타깝게도,'details.php' 페이지는 POST를 통해 오는 것만 받아들이므로, 그 페이지의 코드를 제어 할 수 없기 때문에 저에게는 효과가 없습니다. 허용되는 유일한 것은 POST를 통해 무언가를 전달하는 것입니다. 내 질문을 편집 할 것이므로 POST로만 전달할 수 있다는 것이 확실합니다. – FiddlingAway