2017-02-20 3 views
1

Ich möchte eine Taste für zwei Sprachen verwenden. Wenn der Wert der Schaltfläche Englisch ist, wird der Inhalt in einer anderen Sprache angezeigt und umgekehrt. aber der Wert der Schaltfläche wird immer auf Englisch gesetzt, nachdem die Seite neu geladen wurde. Ich bin mit Laravel 5.3Button Wert zurückgesetzt nach dem Laden Seite

HTML-Code:

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

JavaScript-Code:

$("#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); 

     } 
    }); 
}); 

Antwort

0

Ihr Problem ist hier

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

Sie haben den Wert throught die Steuerung zu übergeben mit eine Variable, oder auf der Suche nach einer Möglichkeit, das auf dem Controller zu steuern, weil auf jeder Seite neu laden Ihr Wert immer Ihren Code

auf der Ansicht, statisch aus dem Eingang HTML-Tag-Wert readed
+0

Sie können auch eine Variable auf dem Controller zu starten "Englisch" auf dem Controller-Konstruktor und dann aktualisieren Sie den Wert auf Schaltfläche klicken Sie auf Aktion – Arngue

+0

wie das zu tun? Ich habe so viele verschiedene Möglichkeiten versucht, aber nicht lösen mein Problem – arif

+0

ok ich erkläre dich, du deklarierst eine Variable innerhalb des Controllers, dann auf dem Controller-Konstruktor setze es auf "Englisch", du bereite eine Methode auf dem Controller kann changeLang() {if (lang.Equals() "english") lang = "spanish";} und dann in der Routen-Konfigurationsdatei Route :: get ('changelang', 'Controller @ changeLang') -> Middleware ('auth') hinzufügen, damit Sie eine Link-Schaltfläche erstellen können zu '{{urlto :: changelang}}' – Arngue

0

wenn Seite

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

läuft again..it ganz offensichtlich ist, dass der Wert gesetzt wird neu geladen wird worden ist „Englisch“ . Wenn Sie Ihre Anforderung erfüllen möchten, dann versuchen Sie etwas, das den Wert wie versteckte Eingabe halten kann, die unsere globalen Variablen abgelegt hat.

+0

Jedes Mal, wenn ich mein Problem auf dieser Website poste, funktioniert mein Gehirn besser als vorher..solve mein Problem. Ich ändere einfach meinen HTML Code zu diesem: und Magie passiert – arif

+0

ok das ist gut .. nicht vergessen zu wählen: D Glückliche Kodierung –

Verwandte Themen