2017-01-25 9 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ページに、次のように(私は多くを変更することはできませんよ)

私の現在の設定があります。私は、アンカータグと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の

内部 window.location.href = 'details.php'追加
function goToOtherPage() { 
    var otherPage = "details.php"; 
    $.post(otherPage, { 
     'userID': $('#userID').val() 
    } 
} 

この関数は、userIDを渡した直後に新しいページを開きますが、渡したいパラメータはありません。

私はCookieの設定と設定解除について考えていますが、POST/GET全体の問題は回避していますが、それは実行可能なオプションではありません。

+0

ですこれは複数のページのフォームまたは何かのために?彼らは「次のステップ」に進み、データの構築を続けたいと思っていますか?使用例の理解を得ようとしています... –

+0

実際には、ありません。ここに掲示されているコードは、電話帳のWebアプリケーションのようなものから抜粋したものです。連絡先をすばやく入力できるようになっています。追加するアンカータグは、追加情報を入力できる詳細ページに移動する必要があります。それがその要点です。 – FiddlingAway

答えて

1

Cookieではなく、SessionStorage APIを使用して一部のデータを1ページに保存し、別のページにアクセスすることができます。 sessionStorage MDNをご覧ください。

単にあなたgoToOtherPageコールバックのような任意のデータを保存中:

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

以降には、次のページで、あなたが経由して、前のページに保存されたデータにアクセスすることができます。

sessionStorage.getItem('formData'); 
+0

残念ながら、 'details.php'ページはPOST経由のものだけを受け入れるため、そのページのコードを制御することはできません。許容できる唯一のことは、POSTを通して何かを渡すことです。私は自分の質問を編集しますので、POSTで渡すことしかできないことは明らかです。 – FiddlingAway

関連する問題