2016-04-30 40 views
0

我想填写表单,然后通过角度控制器传递数据到一个PHP文件....似乎没有工作。有时候我会把空白的条目打到Mysqli,当我更多的时候,但我似乎无法使它工作。Angular,PHP和Mysqli

我知道它与表单我只是无法弄清楚,如果我把一个更简单的文本框的例子,它的作品。

<!DOCTYPE html> 
<html> 
<title>Login</title> 
<link rel="stylesheet" type="text/css" href="final.css"> 
<script type="text/javascript" src="calendar.js"></script> 
<script type="text/javascript">function init() {calendar.set("date");}</script> 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
<link href='http://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.css' rel='stylesheet' type='text/css'> 
<body> 
<header> 
<div class="row"> 
<img src="Final.png" alt="company logo"> 
</div> 
</div> 
<div class="top-bar" id="main-menu"> 
<ul class="menu vertical medium-horizontal expanded medium-text-center"> 
<li><a href="Home.php">Login</a></li> 
<li><a href="Dad.php">Dad</a></li> 
<li><a href="Mom.php">Mom</a></li> 
<li><a href="Son.php">Son</a></li> 
<li><a href="Daughter.php">Daughter</a></li> 
</ul> 
</div> 
header> 
<body onload="init()"> 
<div align="center" ng-app="myapp" ng-controller="studentcontroller"> 
    <form id ="" action="" method="post" > 
     <h2>Enter New Chore</h2> 
     <table> 
     <tr> 
     <td>Name :</td> <td> 
     <select name="user" style="Color: Black" required ng-model="DName"> 
      <option disabled="disabled" selected="selected">Select Person.</option> 
      <option value="Mom">Mom</option> 
      <option value="Dad">Dad</option> 
      <option value="Son">Son</option> 
      <option value="Daughter">Daughter</option> 
      </select> 
     </tr> 
     <tr> 
     <td>Chore Title :</td><td><input type = "text" name = "choretitle" class = "box" style="width: 300px;"required ng-model="DTitle"></td><br> 
     </tr> 
     <tr> 
     <td>Due Date :</td><td><input type="text" name="date" id="date"style="width: 300px;"required ng-model="DDate"></td><br> 
     </tr> 
     <tr> 
     <td>Chore Description :</td><td><textarea name="desc" rows="4" cols="50" maxlength="256" style="width: 300px;" ng-model="DDesc"></textarea><br> 
     </tr> 
     <tr> 
     <td><button type="submit" name="btn-add" ng-click="insertdata()">Add Chore</button></td> 
     </tr> 
     </table> 
     </form> 
     </div> 

<script> 
var app = angular.module("myapp",[]); 
app.controller("studentcontroller",function($scope,$http){ 
    $scope.insertdata = function() { 
     $http.post("insert.php",{'DName':$scope.DName,'DTitle':$scope.DTitle,'DDate':$scope.DDate,'DDesc':$scope.DDesc}) 
     .success(function(data,status,headers,config){ 
      console.log("Inserted Successfully!");   
     }); 
    } 
}); 
</script> 

</body> 
<footer id="footer"> 
<div class="row expanded"> 
<div class="medium-8 columns"> 
<ul class="menu"> 
<li><a href="#">Legal</a></li> 
<li><a href="#">Partner</a></li> 
<li><a href="#">Explore</a></li> 
</ul> 
</div> 
<div class="medium-6 columns"> 
<ul class="menu align-right"> 
</ul> 
</div> 
</div> 
</footer> 

////PHP 
<?php 
$data = json_decode(file_get_contents("php://input")); 
$assingedTo = $data->DName; 
$choreName = $data->DTitle; 
$choreDesc = $data->DDesc; 
$dueDate = $data->DDate; 
$status = "Open"; 
$DBConnect = mysqli_connect("localhost", "root", "qwerty", "chores"); 
$sql = "insert statement" 
$result = mysqli_query($DBConnect, $sql); 
?> 
+0

您是否检查过在'insert.php'中发送的数据?例如用'print_r($ _ POST)'。 – chrki

+0

是的,什么都没有显示出来 –

+0

嗯,这个工作适合你吗? http://stackoverflow.com/a/15485690/1781026我记得我有一次类似的问题,不知道是什么造成了它。 – chrki

回答

0

这是我使用angular PHP时的代码形式。尝试将数据作为一个Javascript对象提取到控制器中。

<form ng-submit="submitChores(chores)" > 
    <h2>Enter New Chore</h2> 
    <table> 
    <tr> 
    <td>Name :</td> <td> 
    <select name="user" style="Color: Black" required ng-model="chores.DName"> 
     <option disabled="disabled" selected="selected">Select Person.</option> 
     <option value="Mom">Mom</option> 
     <option value="Dad">Dad</option> 
     <option value="Son">Son</option> 
     <option value="Daughter">Daughter</option> 
     </select> 
    </tr> 
    <tr> 
    <td>Chore Title :</td><td><input type = "text" name = "choretitle" class = "box" style="width: 300px;"required ng-model="chores.DTitle"></td><br> 
    </tr> 
    <tr> 
    <td>Due Date :</td><td><input type="text" name="date" id="date"style="width: 300px;"required ng-model="chores.DDate"></td><br> 
    </tr> 
    <tr> 
    <td>Chore Description :</td><td><textarea name="desc" rows="4" cols="50" maxlength="256" style="width: 300px;" ng-model="chores.DDesc"></textarea><br> 
    </tr> 
    <tr> 
    <td><button type="submit" name="btn-add">Add Chore</button></td> 
    </tr> 
    </table> 
    </form> 

控制器

app.controller("studentcontroller",function($scope,$http){ 
$scope.submitChores = function(data){ 
     var $data = angular.toJson(data); 
$http.post("insert.php",$data) 
    .success(function(data,status,headers,config){ 
     console.log("Inserted Successfully!");   
    }); 
} 

}); 

这种形式对我的工作和从未有过的单个实例时,我无法在PHP文件获取数据。快乐编码