使用angularjs将一条记录插入mysql数据库


insert a record to mysql database using angularjs

我希望使用angularjs在mysql表中插入一条记录。表:产品product_id、名称、描述。

我希望有两个文本字段和一个保存按钮,点击保存按钮后,记录应该插入mysql表中。我提到了以下链接:

但都是徒劳的。。。

index.html

    <html ng-app>
    <head>
        <script src="../angular-1.0.1.min.js"></script>
        <script src="js/controllers.js"></script>
    </head>
    <body>
    <ul ng:controller="ProductListCtrl">
        <li ng:repeat="product in products">
            {{product.name}}
        </li>
    </ul>
    <form method = 'post'>
        Name : <input type = 'text' name = 'txtName'/>
        Description : <input type = 'text' name = 'txtDescription'/>
        <button ng:click="saveProduct()">New Product</button>
        <div id="content">
            <ng:view></ng:view>
        </div>
    </form>
    </body>
</html>

我在哪里写saveProduct()方法?我应该在其中写什么?

我应该怎么做才能从angularjs在mysql中添加一条记录?

AngularJS是一个客户端MV*框架。大多数客户端框架都希望将DOM操作的决策权交给它们,而它们只是从服务器端获得数据。

当然,在您的情况下,这些数据将存储在MySQL中,您必须通过PHP检索MySQL,并为DB编写一个简单的RESTful接口。在您的angular代码中,假设您的PHP restful端点类似于

http://mywebsite.com/api/product

如果您通过ng资源执行一个简单的POST调用,则相当于在DB上进行保存。有关如何设置的详细信息,您可以查看一些ng资源示例。

您的保存产品方法应该包含如下所示的$http.post方法

$http.post('/api/products', $scope.form).

在html中定义表单如下

<input ng-model="form.txtName" type="text" name="txtName" /> <input ng-model="form.txtDescription" type="text" name="txtDescription" />

您需要使用PHP代码为/api/products定义REST API $http.post方法将向服务器发送一个json

很难给出ganaraj解释的完整代码,因为它涉及服务器端和客户端代码。

在客户端,您应该在控制器中编写一个saveProduct()函数/方法。。。从那里你可以直接发送一个HTTP请求(例如使用$HTTP对象,它内置在angularJS中),也可以编写一个Angular Service,它也会使用$HTTP或$resource发送请求(我个人觉得$HTTP更容易理解)。然后必须在控制器中注入服务,以便控制器可以调用其(服务)saveProduct()方法。

您肯定需要的是服务器端的REST接口/Web服务API。web服务"接收"传入的HTTP请求,然后执行某种服务器端功能,将实际的SQL语句发送到数据库以保存产品。

通常不会有SQL代码直接从客户端发送到服务器。事实上,我甚至不确定这是否可能。。。在使用Java时,您需要一些"介于两者之间"的软件,如JDBC,以便让您的编程语言与数据库对话。据我所知,AngularJS不存在这种情况,因为常用的架构/设计模式是使用REST服务/aWeb服务API。

如果您在服务器端使用PHP,下面的链接可能会对您有所帮助(它解释了如何设置一个简单的RESTneneneba API):

使用PHP 创建简单的REST API

我发现这个链接在如何实现控制器和服务以向服务器发送HTTP请求方面很有用:

在AngularJS 中使用$http发布表单数据