0

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

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

但一切都是徒劳的……

索引.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 中添加记录?

4

3 回答 3

1

您的保存产品方法应包含$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" />

您需要定义 REST API 以/api/products使用您的 PHP 代码,该$http.post方法会将 json 发送到服务器

于 2014-09-02T09:47:16.183 回答
1

AngularJS 是一个客户端 MV* 框架。大多数客户端框架都希望将有关 DOM 操作的决定留给它们,它们只是从服务器端获取数据。

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

http://mywebsite.com/api/product

如果您通过 ng-resource 进行简单的 POST 调用,则相当于在您的数据库上进行保存。有关如何设置的详细信息,您可以查看一些浮动的 ng-resource 示例。

于 2012-08-23T10:20:03.933 回答
0

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

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

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

通常不会有从客户端直接发送到服务器的 SQL 代码。事实上,我什至不确定这是否可能......在使用 Java 时,您需要一些“中间”软件,例如 JDBC,以便让您的编程语言与数据库对话。据我所知,AngularJS 不存在这种类型的东西,因为常用的架构/设计模式是使用 REST 服务/Web 服务 API。

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

使用 PHP 创建简单的 REST API

我发现此链接对如何实现控制器和服务以将 HTTP 请求发送到服务器很有用:

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

于 2014-09-02T09:29:25.450 回答