简体   繁体   中英

Page Redirection Issue- Cakephp3 using Jquery

I have a page where I have kept a dropdown where user can switch over languages. I am using theme so I have kept this dropdown on login.ctp page and posting form values to controller's method using Jquery. I have two form elements within login.ctp I don't know but my dropdown form element is not reaching to particular controller instead it is redirecting to login controller.

login.ctp
 <form id="locale_form" method="post" action="changeLanguage">
  <div id="language" class="language" align="right">
  Please Select Language
    <select id="languageselect" name="languageselect">
        <option name="select" value="lang">Select A Language</option>
        <option name="en_EN" value="en_EN">English</option>
        <option name="de_DE" value="de_DE">German</option>
    </select>
 </div>
  </form>
<div id="login-page">
        <div class="container">

              <!-- <form class="form-login"> -->
              <?= $this->Flash->render('auth') ?>
            <?= $this->Form->create('',['class'=> 'form-login','id'=>'login_form']) ?>
-----------------Login Form Code----------------

Using Jquery onchange I am making switch over languages.

<script type="text/javascript">

    $("select").change(function(){       
         $("#locale_form").submit();
    });

    </script>

My Userscontroller withing that method:

use Cake\I18n\I18n;


class UsersController extends AppController
{   
 public function changeLanguage()
    {
         /*I18n::locale('de_DE');
         echo "reached here";*/
         print_r($this->request->data());die(); 
        if ($this->request->is('post')) 
        {

            $lang = $this->request->data('languageselect');
            $this->request->session()->write('locale', $lang);
            I18n::locale($lang);
            return $this->redirect(['action' => 'login']);
        }

    }

I don't know why But my form element with id="locale_form" is not reaching to its action element. I am using Cakephp3 and I don't know where I have messed up.

添加此方法changeLanguage以允许如下所示。

$this->Auth->allow('changeLanguage');

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM