2016-10-17 10 views
1

データベースに新しい投稿を更新/作成するためにng-submitを使用しようとしています。私はこのHTMLを使用します。更新/登録とサービスの作成

<form ng-submit="savePost()"> 
     <input ng-model="post.TASK"> 
     <input ng-model="post.STATUS""> 
     <button type="submit"></button> 
</form> 

送信すると、この機能を持つコントローラに戻ります。私はconsole.log(scope.post.task)を使用して、値の更新が機能するかどうかを示しますが、それは機能しますが、挿入倍率の値がどのようにサービス内にあるのかはわかりません。

$scope.savePost = function() { 
      console.log($scope.post.TASK); 
      //I send here ID but not sure if I can send multiples values 
      PostAPI.update($routeParams.id).success(function(data, status, headers, config) { 
       $scope.post = data; 
      }); 
     } 
    }) 

私は更新するIDのみを取得します。

this.update = function(data) { 
       return $http.put("ajax/updatePost.php?postID=" + data); 
      } 

これはphpファイルです。あなたはdataがあなたのリソースを更新するためにespecifyしなければならないPUT要求で

$conexion = new PDO("mysql:host=localhost;dbname=angularcode_task;charset=utf8", "root", ""); 
$postID = $_GET['postID']; 
//WE NEED TASK AND STATUS HERE 
$sql=$conexion->query("UPDATE tasks SET task='Buuu', status=2 WHERE id='$postID'"); 
$json = json_encode($sql->execute()); 
echo $json; 

答えて

0

あなたはリソースIDを送信する必要がある場合、それはurlによって、またはあなたがdataを送っ同じレシピで送ることができます。

Angularjs docs for $http.putによると、あなたは以下のコードのようなPUTリクエストのために送らdataするADITIONパラメータを送信することにより、このようなことを行うことができる必要があります。たとえば

$http.put(url, data, [config]); // config is optional 

PostAPIはポストを受けるべきですあまりにもパラメータとして:あなたはpostオブジェクト内のポストIDを持っていた場合も

// controller 
PostAPI.update($routeParams.id, $scope.post).then ... 

// PostApiService 
this.update = function (postId, data) { 
    return $http.put("ajax/updatePost.php?postID=" + postId, data); 

は、あなたが、唯一のparamを必要としませんオブジェクトを作成し、更新メソッド内でキャッチしてurlを構築します。

関連する問題