【发布时间】:2017-08-28 18:21:49
【问题描述】:
我需要使用 Angular 更新数据 我有带有列的 SQL 表(任务列表):id、taskname、date、prior 我需要有可能只更新当前字段,使用按键 字段需要根据其 id 更新。
HTML
<div class="task-list" ng-repeat="x in names">
<div class="col-md-1">
<input type="text" value="{{x.prior}}" ng-keypress="UpdateInfo()"/>
</div>
<div class="col-md-5">
<input type="text" value="{{x.taskname}}" ng-keypress="UpdateInfo()"/> <input type="submit" name="btnInsert" class="btn btn-info" ng-click="DeleteInfo()" value="Delete"/>
</div>
<div class="col-md-5">
<input type="date" value="{{x.startdate}}" ng-keypress="UpdateInfo()"/>
</div>
</div>
控制器
$scope.UpdateInfo = function(){
$http.post(
"update.php",
{'taskname':$scope.taskname, 'comments':$scope.comments, 'prior':$scope.prior, 'startdate':$scope.startdate }
).success(function(data){
alert(data);
if (data == true) {
getInfo();
}
});
}
PHP 在那里我试图只更新任务名
$data = json_decode(file_get_contents("php://input"));
if(count($data) > 0)
{
$id = mysqli_real_escape_string($connect, $data->id);
$taskname = mysqli_real_escape_string($connect, $data->taskname);
$comments = mysqli_real_escape_string($connect, $data->comments);
$startdate= mysqli_real_escape_string($connect, $data->startdate);
$prior= mysqli_real_escape_string($connect, $data->prior);
$query = "UPDATE tbl_user SET taskname='$taskname' WHERE id='$id'";
if(mysqli_query($connect, $query))
{
echo "Data Update...";
}
else
{
echo 'Error';
}
}
按键后我只看到“数据更新...”。但任务名称没有更新。
【问题讨论】:
-
您没有在 JSON 对象中发送
id。 -
这绝对是问题所在!
-
@Chris 你能更详细地解释一下我需要改变什么来解决这个问题吗?我的 SQL 表中已经有 id 并且它工作正常,当我添加新任务时
-
您正在尝试执行更新,但您的 PHP 代码不知道您正在尝试更新的 ID。这需要包含在您在 POST 请求中发送的字段列表中
-
在插入新记录时可以这样做,但如果您想使用 UPDATE 更新特定记录,则需要指定要更新的 ID。
标签: javascript php sql angularjs