选择框上的选择值后重新加载网页

时间:2017-03-04 10:47:13

标签: javascript jquery

我试过语言更改复选框。如果我选择泰米尔语意味着然后重新加载页面然后应用泰米尔语标签。但是选择框值重新加载默认选项英文。 如何更改语言选择框值选择

HTML CODE

<select id="Language" name="Language" class="bootstrap-select buttonstyle">
       <option value="English">English</option>
       <option value="Tamil">தமிழ்</option>
     <option value="Malayalam">മലയാളം</option>
</select>

Jquery代码

$('#Language').on('change', function () {
    var value = $(this).val();
    $.ajax({
        url: 'php/language.php',
        data: {val:value},
        type: 'POST',
        success:function (data) {
            document.location.reload();
            LangLoad(data);
        }
    });
});


function LangLoad(value) {
    $('#Language').val(value);
}

如何解决这个问题....

2 个答案:

答案 0 :(得分:1)

解决方法因为没有正确处理你的方法。

考虑使用localStorage存储选定的language

$('#Language').on('change', function () {
    var value = $(this).val();
    $.ajax({
        url: 'php/language.php',
        data: {val:value},
        type: 'POST',
        success:function (data) {
            LangLoad(data); //call this before reloading document
            document.location.reload();
        }
    });
});


function LangLoad(value) {
    localStorage.setItem('language', value);//storing to localStorage
    //$('#Language').val(value); //no need here
}

language

获取localStorage
$(document).ready(function(){
    var language = localStorage.getItem('language');
    if(language) {
       $('#Language').val(language);
    }
});

答案 1 :(得分:1)

依赖从服务器收到的数据也更为相关。我假设您的服务器语言为php

<强> JAVASCRIPT

$('#Language').on('change', function () {
    $('form').submit();
});

HTML&amp; PHP视图

<form action="php/language.php" method="POST">
    <select id="Language" name="Language" class="bootstrap-select buttonstyle">
           <?php $html = ''; 
           foreach ($options as $option => $value) {
               if ($value === $selectedValue) {
                   $html .= '<option value='.$value.' selected="selected">'.$option.'</option>';
               } else {
                   $html .= '<option value='.$value.'>'.$option.'</option>';
               }
           }?>
           <?php echo $html; ?>
    </select>
</form>