我在ng-click上使用AngularJS将数据发送到php文件。我有2个按钮,我试图将它发送到相同的php文件,使用switch case插入数据库,但它没有更新数据库。
如何修复我的PHP?
insert.php
<?php
include_once('conn.php');
$data = json_decode(file_get_contents("php://input"));
switch($data){
case 'getvou':
$vou = $data->getvou;
$sql = $mysqli->query("UPDATE audiencia SET vou = '".$vou."'");
$mysqli->close();
break;
case 'getnaovou':
$naovou = $data->getnaovou;
$sql = $mysqli->query("UPDATE audiencia SET nao_vou = '".$naovou."'");
$mysqli->close();
break;
}
?>
的script.js
$scope.add_vou = function(){
$scope.vou += 1;
$http.post("http://localhost/insert-audiencia.php", {'getvou': $scope.vou}).then(function(resp){
console.log(JSON.stringify(resp));
console.log(resp);
});
}
$scope.add_nao_vou = function(){
$scope.nao_vou += 1;
$http.post("http://localhost/insert-audiencia.php", {'getnaovou': $scope.nao_vou}).then(function(resp){
console.log(JSON.stringify(resp));
console.log(resp);
});
}
答案 0 :(得分:1)
$data
将是一个JSON对象,它不会与这些字符串中的任何一个相等,因此case
中不会匹配switch
。
根据您当前发送数据的方式,您需要检查JSON对象是否具有属性。
if (property_exists($data, 'getvou')) {
// one query
} elseif (property_exists($data, 'getnaovou')) {
// other query
}
isset($data->getvou)
等也适用于此。