我是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
我不知道我做错了什么。希望你们能帮助我解决这个问题。感谢。
答案 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"