使用AngularJS和PHP将数据插入其中后,MySQL表显示空值

时间:2017-04-15 11:06:39

标签: php mysql angularjs http-post

我是AngularJS和PHP的新手,我正在尝试将一些数据添加到MySQL中。但MySQL表显示空值而不是我想插入的数据。

HTML:

<form data-ng-controller="myCtrl">
     <label for="roomName">Room Name: </label>
     <input type="text" name="roomName" data-ng-model="roomName" id="roomName" />

     <br />

     <label for="maxPerson">Maximum Person: </label>
     <input type="text" name="maxPerson" data-ng-model="maxPerson" id="maxPerson" />
     <button type="submit" class="btn btn-default" data-ng-click="addRoom()">Add</button>
</form>

app.js(Controller)

app.controller("myCtrl", function ($scope, $http) {
     "use strict";

     $scope.addRoom = function () {
         $http.post("add_library_room.php", {'roomName': $scope.roomName, 'maxPax': $scope.maxPerson})
             .then(function (response) {
                 $scope.msg = "Room is inserted into database.";
             });
     };
});

add_library_room.php(插入数据)

<?php

define("HOSTNAME","localhost");
define("USERNAME","root");
define("PASSWORD","");
define("DATABASE", "booking_db");

$dbhandle=new mysqli(HOSTNAME, USERNAME, PASSWORD, DATABASE) or die ("Unable to Connect to the Database");

$data=json_decode(file_get_contents("php://input"));

$room_Name=$dbhandle->real_escape_string($data->roomName);
$max_Pax=$dbhandle->real_escape_string($data->maxPax);

$query="INSERT INTO library_discussion_room (room_name, max_pax) VALUES ('$room_Name', '$max_Pax')";

$dbhandle->query($query);

?>

phpMyAdmin MySQL数据库(我插入的值为空): Image Link

我不知道我做错了什么。希望你们能帮助我解决这个问题。感谢。

2 个答案:

答案 0 :(得分:0)

您确定不是使用

吗?
$data=json_decode(file_get_contents("php://input"));

你不能简单地使用

$data=$_POST;

只需打印您的$ data变量

即可
print_r($data);

您必须将$ data设为空。

答案 1 :(得分:0)

这是因为您直接尝试在范围内写入数据。 Angular JS经常在指令中创建子视图,以避免搞乱更高级别的数据。 因此,如果你直接写Public Class,那么它将只是一个独特的,而不是一个参考。

为了使它工作,你需要创建一个对象,并引用它的属性,因为angular也会在父作用域中搜索该对象。

所以解决方案将是这样的:

if MainForm.IPADSOFTBOX1.Checked = true then
                        'Do whatever
                        End if

然后在你的控制器中

ng-model="something"