Как сохранить значения данных из формы в angularjs, используя обезжиренный фреймворк

0

Я пытаюсь сохранить данные в sql, используя обезжиренную структуру. Я использовал передний конец в угловых. Я отправляю данные с помощью угловой кнопки ng-submit. ajax Сообщение данных, но не получить в жир бесплатно решить эту проблему. Я новичок в жире.

here is my html code:

<form id="userRegister" name="registration" ng-submit="register1(formData)" ng-controller="Ctrl1">  
     <div class="sf-steps-form sf-radius"> 
        <div class="sf_columns column_3">
          <input ng-model="formData.email" id="email"  type="email"  name="email" placeholder="Email*"  data-required="true" >
        </div>
        <div class="sf_columns column_3">
            <input ng-model="formData.password" id="password" type="password" name="password" placeholder="Secret Word*"   data-required="true" >
        </div>
    </div>
    <button type="submit" id="sf-next" class="sf-button">Save</button>
</form>  


here is my app.js code:

sampleApp.controller("Ctrl1", function($scope, $http) {
    $scope.formData = {};
    $scope.register1 = function() {
        console.log($scope.formData);
    $http({
      method  : 'POST',
      url     : 'addstep',
      data    : $scope.formData, 
      headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
     })
      .success(function(data) {
        if (data.errors) {
           $scope.errorEmail = data.errors.email; 
          $scope.errorPassword = data.errors.password;
        } else {
          $scope.message = data.message;
        }
      });
    };
});

here is my idex.php fat free framework code:

    $f3->route('GET|POST /addstep',
    function($f3) {  

        //print_r($f3);
        $users = new DB\SQL\Mapper($f3->get('DB'),'user');

        $users->copyFrom('POST');
        $users->save();
        $f3->set('content','step1.htm');
        echo View::instance()->render('layout.htm');
    }
);

The ajax post data properly but not save in db please help.
Теги:
fat-free-framework

2 ответа

0
Лучший ответ

Проверьте $f3->get('BODY'); Возможно, вам понадобится json_decode;

Скорее всего, данные отправляются через PUT

0

Я на самом деле просто справился с этим в приложении с использованием f3 и угловым. Если вы этого не поняли, я довольно успешно справился с этим:

У меня есть угловой сервис $ http:

angular.module('myApp')
.service('apiConnector', function apiConnector($http) {

    var apiBase = '';

    var obj = {};

    obj.get = function(q) {
        return $http.get(apiBase + q).then(function(results) {
            return results.data;
        });
    };
    obj.post = function(q, object) {
        return $http.post(apiBase + q, object).then(function(results) {
            return results.data;
        });
    };
    obj.put = function(q, object) {
        return $http.put(apiBase + q, object).then(function(results) {
            return results.data;
        });
    };
    obj.delete = function(q) {
        return $http.delete(apiBase + q).then(function(results) {
            return results.data;
        });
    };

    return obj;

});

Затем я использую эту услугу в своих угловых контроллерах следующим образом:

angular.module('myApp')
  .controller('homeController',function($scope, $state, $stateParams, $timeout, apiConnector){

    $scope.user = {};

    apiConnector.get('/api/users/'+$stateParams.id)
      .then(function(res){
        if (res.success) {
          $scope.user = res.data;
        }
      },function(err){
        console.log(err);
      });

    $scope.updateUser = function(user) {
      apiConnector.post('/api/users/'+$stateParams.id,user)
        .then(function(res){
          if (res.success) {
            alert('updated');
          }
        }, function(err){
          console.log(err);
        });
    };

  });

Наконец, контроллер f3. Я использую [maps] для своих маршрутов, чтобы получить действительно спокойный интерфейс, а мои маршруты используют параметр @id. Я собираю данные так:

class Item {
  function get($app,$params) {
    $id = $params['id'];
    $user = new \Models\User();
    $user->load(array('id = ?',$id));
    echo json_encode($user->cast());
  }
  function post($app,$params) {
    $POST = json_decode(file_get_contents('php://input'));
    $id = $params['id'];
    $user = new \Models\User();
    $user->load(array('id = ?',$id));
    $user->copyfrom($POST);
    $user->touch('created');
    $user->save();
    echo json_encode(array('message' => 'Successfully updated user!'));
  }
  function put() {}
  function delete() {}
}

Надеюсь, это поможет!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню