2016-04-28 38 views
0

こんにちは私のlaravel eshopに私はチェックボックスに通貨​​の値のリストを持っています。チェックボックスが選択されると、私のページがリロードされ、通貨の値が更新されますが、ページのリロード後にチェックボックスの選択がありません。ページのリロード後にチェックボックスの状態を確認する方法

<script> 
    $(document).ready(function(){ 
    $(function() { 
    // Currency change in checkout 
    $('#usd').on('ifChecked', function() { 
     var currency = $("input[name='currency']:checked").val(); 
     $.ajax({ 
      type: 'POST', 
      url: "{{URL::to('/')}}/cart/setcurrency", 
      data: {'currency':currency}, 
      dataType: 'json', 
      success: function(data) { 
       window.location.reload(); 
       $('input#usd').html("input[name='currency']:checked");     
      } 
     }) 
    }) 
    $('#aed').on('ifChecked', function() { 
     $("#tot_val").css("font-size", "14px"); 
     $("#tot_text").css("font-size", "14px"); 
     var currency = $("input[name='currency']:checked").val(); 
     $.ajax({ 
      type: 'POST', 
      url: "{{URL::to('/')}}/cart/setcurrency", 
      data: {'currency':currency}, 
      dataType: 'json', 
      success: function(data) { 
       window.location.reload(); 
       $('#aed').html("{{Session::get('currency')}}"); 
      } 
     }) 
    }) 
    $("input[name='currency']:checked").bind("change", function(event, ui) { 
    console.log('Lang: '+$(this).val()); 
     }) 
    </script> 
    <div class="cart_currency"> 
        <form action="#"> 
         {{Session::get('currency')}} 
         <p>CURRENCY</p> 
         <input type="radio" name="currency" value="USD" id="usd">USD 
         <input type="radio" name="currency" value="AED" id="aed">AED 

         <a href="{{URL::to('/')}}/cart/shipping"> 
          <input type="button" name="currency_sub" value="CONTINUE" class="currency_submit"> 
         </a> 
        </form> 
       </div> 

    public function postSetcurrency(){ 
    $data = Input::all(); 
    Session::set('currency',$data['currency']); 
    return Response::json('success'); 
} 
+0

あなたは非常に使いやすいHTML5の 'sessionStorage' APIを使うことができます。 –

+0

私はlaravelを知らないが、ラジオボタンをチェックするためにHTMLに何も持っていない。あなたは '<?php if($ currency == 'usd'){echo 'checked =" checked "'; }?>か、Laravelでこれを行うのと同等の方法があれば、 – Mike

+0

こんにちは、@あなたの答えをありがとうございます。 –

答えて

1

あなたは、チェックボックスの状態を保存し、POSTとして渡すPHPまたはローカルストレージに私は前にLaravelを使用していない https://developer.mozilla.org/es/docs/Web/API/Storage/setItem

javascript: 
//set the checkbox state 
localStorage.setItem('checkbox_one','true'); 
localStorage.setItem('checkbox_one','false'); 


//on page load 
if(localStorage.getItem('checkbox_one') == 'true'){ 
    //checkbox was checked 
}else{ 
    //checkbox checked not true 
} 
1
@if (Session::has('currency')) 
    $value = Session::get('currency'); 
    @if(strcmp($value,"USD") == 0) 
      <input type="radio" name="currency" value="USD" checked id="usd">USD 
      <input type="radio" name="currency" value="AED" id="aed">AED 
    @else if(strcmp($value,"AED") == 0) 
      <input type="radio" name="currency" value="USD" id="usd">USD 
      <input type="radio" name="currency" value="AED" checked id="aed">AED 
    @endif 
@else 
    <input type="radio" name="currency" value="USD" id="usd">USD 
    <input type="radio" name="currency" value="AED" id="aed">AED 
@endif 

を設定するには、JavaScriptを使用して可能性がありますが、いくつかのオフサイトの例を見るだけで、これを試すことができます。現在のラジオボタンを置き換える必要があります。

関連する問題