2016-06-23 4 views
0

Я использую Foundation 5.5.3 и проверяю форму для регистрации моего сайта. Так что мой Javascript выглядит следующим образом:Fat-Free Framework & Abide AJAX форма представления не работает

$('form#register').on('valid.fndtn.abide', function() { 
    var data = { 
     'email'  : $('#email').val(), 
     'username' : $('#username').val(), 
     'password' : $('#password').val() 
     }; 

    $.ajax({ 
    method: 'POST', 
    url: 'user', 
    data: $('#email, #username, #password').serialize(), 
    beforeSend: function() { 
     console.log(data); 
    } 
    }); 
}); 

я пропущу добавление HTML здесь, потому что я могу видеть из console.log, что показывает там данные в data объекта. Я пробовал отключить async и добавил headers: {'Content-Type': 'application/x-www-form-urlencoded'} и не работал.

Тогда в F3, у меня есть следующие:

$f3->map('/user', 'User'); 

class User { 
    private $email; 
    private $username; 
    private $password; 

    function get() { } 

    function post($f3) { 
    global $handler; // This is a PHPConsole handler instance for debugging 

    $email = $f3->get('PARAMS.email'); 
    $username = $f3->get('PARAMS.username'); 
    $password = $f3->get('PARAMS.password'); 

    $handler->debug($email, 'email:'); 
    $handler->debug($username, 'username:'); 
    $handler->debug($password, 'password:'); 
    } 

    function put() { 

    } 

    function delete() { 

    } 
} 

отладочной выходы $email, $username и password всегда null от PHPConsole. Что мне не хватает?

ответ

3

Вы делаете это неправильно

$email = $f3->get('PARAMS.email'); 
$username = $f3->get('PARAMS.username'); 
$password = $f3->get('PARAMS.password'); 

Должно быть

$email = $f3->get('POST.email'); 
$username = $f3->get('POST.username'); 
$password = $f3->get('POST.password'); 

F3 магазины Получить данные в $f3->get('GET');, разместить данные в $f3->get('POST.email'); и т.д.

+1

Правильно! Спасибо за ответ! – ArtlyticalMedia