2017-02-20 3 views
1

Я хочу использовать одну кнопку для двух языков. когда значение кнопки отображается на английском языке, будет отображаться на другом языке и наоборот. но значение кнопки всегда устанавливается на английский после перезагрузки страницы. Я использую Laravel 5.3Сброс значения кнопки после перезагрузки страницы

HTML код:

<input type="button" name="locale" id="languageSwitcher" href="{!! url('lang') !!}" class="btn btn-round btn-primary" value="English"> 

Javascript код:

$("#languageSwitcher").change(function() { 
    var locale = document.getElementById("languageSwitcher").value; 
    if (locale == "English") { 
     lang = "en"; 
     document.getElementById("languageSwitcher").value = "Bangla" 
    } 
    else if (locale == "Bangla") { 
     lang = "bn"; 
     document.getElementById("languageSwitcher").value = "English" 

    } 
    var _token = $("meta[name=_token]").val(); 
    $.ajax({ 
     url: "/language", 
     type: 'POST', 
     data: {locale: lang, _token: _token}, 
     dataType: 'json', 
     success: function (data) { 

     }, 
     error: function (data) { 

     }, 
     beforeSend: function (data) { 

     }, 
     complete: function (data) { 
      window.location.reload(true); 

     } 
    }); 
}); 

ответ

0

Ваша проблема здесь

<input type="button" name="locale" id="languageSwitcher" href="{!! url('lang') !!}" class="btn btn-round btn-primary" value="English"> 

Вы должны передать значение Повсеместно контроллера с помощью переменная или ищет способ управления этим контроллером, поскольку на каждой странице перезагружается ваше значение будет всегда было от прочитанных значений тега ввода HTML статического на представлении

+0

вы также можете использовать переменную на контроллере, запустив ее на «английский» в конструкторе контроллера, а затем обновите значение на кнопке «Отправить действие» – Arngue

+0

, как это сделать? Я пробовал так много разных способов, но не решил моя проблема – arif

+0

ОК, я объясню вам, вы объявите переменную внутри контроллера, а затем на конструкторе контроллера установите его на «английский», вы подготовьте метод на контроллере, который можно назвать changeLang() {if (lang.Equals («английский») lang = «испанский»;}, а затем в файле конфигурации маршрутов добавьте Route :: get ('changelang', 'Controller @ changeLang') -> промежуточное ПО ('auth'), поэтому вы можете создать ссылку, указывающую to '{{urlto :: changelang}}' – Arngue

0

когда страница перезагружается код

<input type="button" name="locale" id="languageSwitcher" href="{!! url('lang') !!}" class="btn btn-round btn-primary" value="English" 

работает again..it совершенно очевидно, что значение установлено на «английском языке» , если вы хотите выполнить свое требование, попробуйте что-то, что может содержать значение, подобное скрытому вводу, которое подало наши глобальные переменные.

+0

каждый раз, когда я отправляю свою проблему на этом сайте, мой мозг работает лучше, чем раньше ... разрешил мою проблему. я просто изменяю свой код html на это: и волшебство происходит – arif

+0

ok thats good .. не забудьте проголосовать: D Счастливое кодирование –

Смежные вопросы