2016-05-31 9 views
1

私は、別々のページにある2つの同一のフォームを持っています。相互に作用する2つのフォーム

ページ1

このページ上のフォームにはので、次のページのフォームを移入あらかじめますことを話すように、アクションへの迅速な呼び出しです。

<form action="/xxxx" method="post"> 
    <select id="island" name="island"> 
     <option selected value="base">Select an Island</option> 
     <option value="north-island">North Island</option> 
     <option value="south-island">South Island</option> 
    </select> 
</form> 

2ページ

現状では、私は以下を使用して、下記のフォームに移入することができます今すぐ

<select id="island" name="island"> 
    <option value="base">Select an Island</option> 
    <option <?php if(isset($_POST['island'])) { echo 'selected'; } ?> value="north-island">North Island</option> 
    <option <?php if(isset($_POST['island'])) { echo 'selected'; } ?> value="south-island">South Island</option> 
</select> 

を、私は私の問題は、私が取得するために、AJAXを使用していますということですフォームをそのまま使用するとうまくいくデータですが、ページ1からページ2に行くと、.changeとそれに対応する結果が表示されません。

$('#island').change(function() { 
    var selectedValue = $(this).find(':selected').val(); 
    jQuery.ajax({ 
     type: 'POST', 
     data: { 
      action: 'cfd_map', 
      option: selectedValue 
     }, 
     url: "xxxxxx", 
     success: function(data) { 
      $('.results').html(data).fadeIn('slow'); 
     } 
    }); 
}); 

誰でもお手伝いしますか?

乾杯

+0

を動作させる必要がない限り、どこかの状態変化を格納する必要があります... serverまたはlocalStorageにあり、おそらくページロード時に 'results'を更新してください。 Javscriptはページ読み込み間で永続的ではありません – charlietfl

+0

@charlietfl返信ありがとうございます。どこが正確ですか?基本的なJSだけを知っている。乾杯。 – tebrown

+0

次にlocalStorageを試してください。変更ハンドラ内でlocalStorageをvalueで更新します。ページのロード時にストレージからの検索を行い、selectの値を設定して変更イベントをトリガーし、ajaxが再び実行されます – charlietfl

答えて

0

resultsのみ動作します2ページに1ページから行くと、2ページから戻って1ページにするつもりはないし、次の利用できるようにする必要がある場合:

$('#island').change(function() { 

    var selectedValue = $(this).val(); 
    // only do ajax if there is a value 
    if (selectedValue) { 
    jQuery.ajax({ 
     type: 'POST', 
     data: { 
     action: 'cfd_map', 
     option: selectedValue 
     }, 
     url: "xxxxxx", 
     success: function(data) { 
     $('.results').html(data).fadeIn('slow'); 
     } 
    }); 
    } 
    // now trigger change 
}).change(); 

それは単に変更をトリガーハンドラが宣言された後サーバがすでに2ページの値を設定しますので、変更をトリガすることは、その後必要に応じて他のローカルストレージ全く存在しないはずの結果に

を取得するために、AJAX呼び出しを行います - これは両方の方法

+0

結果は2ページのみに表示されます。ページ1フォームは、ユーザーがすぐに選択してページにリダイレクトできるユーザーが1ページ目をスキップして2ページにまっすぐに進むと、フォームを使用することがあります。 – tebrown

+0

このソリューションは、現在は2ページから2ページに移動してください。 – charlietfl

+0

このソリューションはうまくいくようですが、2ページ目のフォームのみを使用すると結果が褪せませんか?私はこれに正解を与えるでしょう。 また、ページ1のフォームからオプションを選択しないと、ページ2のフォームに北島としても入力されますが、なぜですか? – tebrown

関連する問題