gpt4 book ai didi

javascript - 使用 AngularJS $http 时检查 php 插入是否成功

转载 作者:行者123 更新时间:2023-11-29 11:47:37 25 4
gpt4 key购买 nike

我是 AngularJS 的初学者,但我刚刚弄清楚如何使用 $http 服务将 POST 数据传递到 PHP 文件以插入到我的数据库中。

这是我的 add.php 文件。它显示我的表单,并在底部插入代码块:

<h2>Add Car</h2>
<div ng-controller="formCtrl">
<form method="POST">
<label>Make:</label>
<select ng-model="car.make">
<option>Make 1</option>
<option>Make 2</option>
<option>Make 3</option>
</select>
<label>Model:</label>
<input type="text" ng-model="car.model">
<input type="submit" ng-click="addCar(car)">
</form>

<pre>
{{message}}
</pre>
</div>


<?php
$data = json_decode(file_get_contents("php://input"));
$make = $data->make;
$model = $data->model;

$con = new PDO('mysql:host=localhost;dbname=mydb', 'user', 'pass');

$stmt = $con->prepare("INSERT INTO cars (model, make) VALUES(?, ?)");
$stmt->bindParam(1, $model);
$stmt->bindParam(2, $make);
$stmt->execute();
?>

这是我的 Controller :

app.controller('formCtrl', function ($scope, $http) {

$scope.addCar = function (car) {

$http({
method: 'POST',
url: 'tools/add.php',
data: car,
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
})
.then(function (response) {
$scope.message = "great!";
});
}
});

现在有办法检查插入是否成功吗?我知道您可以使用 rowCount() 函数来检查 PHP 端,然后将您的消息设置为错误或成功插入,但我想知道是否有适合我的JS 来知道是否实际插入了一行。

最佳答案

检查插入是否成功:

if ($stmt->execute()) { 
// It worked
} else {
// It didn't
}

为什么不在 PHP 中添加类似 die('Not success'); 的内容。然后获取 Angular 来检查是否提供了错误消息:

$http({
method: 'POST',
url: 'tools/add.php',
data: car,
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
})
.then(function (response) {
if(!response) {
// Success
$scope.message = "great!";
} else {
// Fail
alert(response);
}
});

不要忘记,您也可以在 Angular 中使用 .success().error()

最后一件事!我发现将 JSON 请求文件与部分文件分开可以使一切变得更容易且易于管理。上述解决方案将不起作用,因为 HTML 数据在到达 JSON 内容之前已发送!

关于javascript - 使用 AngularJS $http 时检查 php 插入是否成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34649323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com