如何访问Angularjs中表单提交的数据?

时间:2015-10-13 10:59:22

标签: javascript php angularjs forms

以下是来自Ng-Book - the Complete Book on Angularjs Book by Ari Lerner http://jsbin.com/voxirajoru/edit?html,output的示例,其中ng-form已用于创建嵌套表单元素并执行验证。由于每个输入字段对name属性具有相同的值,因此如何在服务器端通过使用某种服务器端语言来访问所有三个变量的值?我们说它是PHPmethodpost。通常在PHP我会这样做:

`$_POST['dynamic_input']`

但是如何使用$_POST数组访问来自输入字段的三个字段值?

1 个答案:

答案 0 :(得分:1)

使用您提供的链接中的示例,您可以通过使用以下内容更新代码来访问表单数据。

//将fields对象作为参数添加到submitForm()

<form name="signup_form" ng-controller="FormController" ng-submit="submitForm(fields)" novalidate>

//在$ scope.submitForm()函数中......

$scope.submitForm = function(data) {
    alert(data[0].name); // Alerts name
    alert(data[1].name); // Alerts password
    alert(data[2].name); // Alerts email
  };

如果您注销submitForm()收到的数据,则会收到以下信息:

[{"placeholder":"Username","isRequired":true,"$$hashKey":"004","name":"random name"},{"placeholder":"Password","isRequired":true,"$$hashKey":"005","name":"password"},{"placeholder":"Email (optional)","isRequired":false,"$$hashKey":"006","name":"email@host.com"}]

要传递到您的服务器,请按原样打包所有内容或将其格式化为您的首选项,并通过$ scope.submitForm函数内置的$http.post()$resource()将其发送到您的服务器

格式化数据的示例可以是:

$scope.submitForm = function(data) {
    var postData = {};
    postData.name = data[0].name;
    postData.password = data[1].name;
    postData.email = data[2].name;

    ... send postData to server via AJAX ...

    // Creates the object: {"name":"random name","password":"password","email":"email@host.com"}
    //alert(JSON.stringify(postData));
  };