2014-04-24 171 views
1

我使用的角度与MySQL通过PHP。当我尝试添加到数据库时,它会添加,但我必须单击浏览器上的刷新才能看到结果。为什么我的数据库更新没有刷新没有加载

我觉得这是角度的真正好处,但我对角度和MySQL也很新,所以我真的不知道我要去哪里错误或如何使它正常工作。这似乎是我所有的数据库调用。

只是为了澄清,我在上面的页面上使用ng-include来引导bootstrap,angular和jquery。

感谢任何人谁可以指出我在正确的方向。

-html

<div class="widget-box" id="recent-box" ng-controller="ideasController"> 
    <div class="widget-header header-color-blue"> 
     <div class="row"> 
      <div class="col-sm-6"> 
       <h4 class="bigger lighter"><i class="glyphicon glyphicon-align-justify"></i>&nbsp;Idea MANAGER</h4> 
      </div> 
     </div> 
    </div> 
    <div class="widget-body "> 
     <form id="newIdeaForm" class="add-idea"> 
     <div class="form-actions"> 
     <div class="input-group"> 
      <input type="text" class="form-control" name="comment" ng-model="ideaInput" placeholder="Add New Idea" > 
     <div class="input-group-btn"> 
      <button class="btn btn-default" type="submit" ng-click="addIdea(ideaInput)"><i class="glyphicon glyphicon-plus"></i>&nbsp;Add New Idea</button> 
     </div> 
     </div> 
     </div> 
     </form> 


     <div class="idea"> 
      <div style="width: 80%; margin-left:auto; margin-right:auto;"> 
       <table class="table table-hover"> 
        <tbody> 
         <tr ng-repeat="idea in ideas | orderBy:'idea'"> 
          <td>{{idea.IDEA}} <a ng-click="deleteIdea(idea.ID)" style="float:right;"><button class="btn btn">Delete</button></a></td> 
         </tr> 
        </tbody> 
       </table> 
      </div> 
     </div> 
    </div> 
</div> 

-php

//addIdea.php 

    <?php 
    require_once 'db.php'; // The mysql database connection script 
    if(isset($_GET['idea'])){ 
    $task = $_GET['idea']; 
    $status = "0"; 
    $created = time(); 
    $query=mysql_query("INSERT INTO ideas(idea,status,created_at) VALUES ('$idea', '$status', '$created')") or die(mysql_error()); 
    } 
    ?> 

//getIdea.php 

    <?php 
    require_once 'db.php'; // The mysql database connection script 
    $status = '%'; 
    if(isset($_GET['status'])){ 
    $status = $_GET['status']; 
    } 
    $query=mysql_query("select ID, IDEA, STATUS from ideas where status like '$status' order by status,id desc") or die(mysql_error()); 

    # Collect the results 
    while($obj = mysql_fetch_object($query)) { 
     $arr[] = $obj; 
    } 

    # JSON-encode the response 
    echo $json_response = json_encode($arr); 
    ?> 

-js

//Define an angular module for our app 
var app = angular.module('myApp', []); 

app.controller('ideasController', function($scope, $http) { 
    getIdea(); // Load all available ideas 
    function getIdea(){ 
    $http.get("ajax/getIdea.php").success(function(data){ 
     $scope.ideas = data; 
     }); 
    }; 
    $scope.addIdea = function (idea) { 
    $http.get("ajax/addIdea.php?idea="+idea).success(function(data){ 
     getIdea(); 
     $scope.ideaInput = ""; 
     }); 
    }; 

回答

0

您需要刷新页面或者页面的部分拉离新信息数据库。您可以使用header通过您的addIdea.php重新加载页面。

header('Location: thispage.html'); 

您可以重新载入继INSERT,新数据将在表的页面。

<?php 
    require_once 'db.php'; // The mysql database connection script 
    if(isset($_GET['idea'])){ 
    $task = $_GET['idea']; 
    $status = "0"; 
    $created = time(); 
    $query=mysql_query("INSERT INTO ideas(idea,status,created_at) VALUES ('$idea', '$status', '$created')") or die(mysql_error()); 
    } 
     header('Location: idea.html'); 
    ?> 
+0

$查询=请求mysql_query( “INSERT INTO思想(观念,地位,created_at)VALUES( '$理念', '$状态', '$创建')”)或死亡(mysql_error()); header('location:idea.html'); –

+0

我添加了它,但它似乎没有刷新,我仍然需要在浏览器中手动点击刷新。 –

+0

@MVC_Future_Guru我的php并不是非常尖锐的,但是您可能需要使用单引号而不是双引号。 – sealz