2016-01-19 3 views
2

Я использую yii2-advanced-app & хочу отправить имя пользователя & пароль на мой сайтКонтроллер с использованием почтового метода. Я не хочу использовать скрытые поля формы здесь.Yii2: Получение значений из всплывающих окон в контроллере

Я попытался это таким образом:

мой Всплывающее расположен в index.php есть -

<form id = "userlogin" action = "index.php?r=site/loginpopup" method = "POST"> 
        <label>Email/Username</label> 
        <input type="text" name="username" id="username"/> 
        <br /> 

        <label>Password</label> 
        <input type="password" name="password" id="password"/> 
        <br /> 

        <div class="checkbox"> 
         <input id="remember" type="checkbox" /> 
         <label for="remember">Remember me on this computer</label> 
        </div> 

        <div class="action_btns"> 
         <div class="one_half"><a href="#" class="btn back_btn"><i class="fa fa-angle-double-left"></i> Back</a></div> 
         <div class="one_half last"><input type="submit" value="Search" onclick="getCred()"><a href="javascript: getCred()" name='login-button' class="btn btn_red">Login</a></div> 
        </div> 
       </form> 
       <script type="text/javascript"> 
       var userloginValidator = new Validator("userlogin"); 
       userloginValidator.addValidation("username","req", "Please enter the value for query"); 
       function getCred(){ 
        var un = document.getElementById('username').value; 
        var pwd = document.getElementById('password').value; 
        alert(un);alert(pwd); 
        // window.location = "index.php?r=site/loginpopup&username="+un+"&password="+pwd; 
        if(document.userlogin.onsubmit()) { 
         document.userlogin.submit(); 
        } 
        $.post("index.php?r=site/loginpopup", { username: un }, { password: pwd }); 
        // jQuery.post('index.php?r=site/loginpopup',{ username: un }, { password: pwd }); 
       } 
       </script> 

А функция контроллера -

public function actionLoginpopup() 
    { 
$un = $_POST['username']; 
echo $un; 
     exit(); 
} 

Но, он говорит -

Плохой запрос (№ 400) Невозможно проверить отправку данных.

ответ

0

Я думаю, что Вы не можете отправить многокомпонентные данные формы с JQuery после метода

попытаться использовать Yii2 форму и поставить эту линию

«ENCTYPE» => «многочастному/форм-данных» в варианты формы, как это:

$form = ActiveForm::begin([ 
    'id'  => 'userlogin', 
    'method' =>'post', 
    'action' => Url::toRoute['site/loginpopup'], 
    'options' => [ 
     'enctype'   => 'multipart/form-data' 
    ], 
]); ?> 

YiiForm

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