【问题标题】:How to access data submitted by a form in Angularjs?如何在 Angularjs 中访问表单提交的数据?
【发布时间】:2015-10-13 10:59:21
【问题描述】:

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

`$_POST['dynamic_input']`

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

【问题讨论】:

  • 您所说的所有这些字段都有自己的 ID。我的意思是,您应该按索引从 $_POST var 中检索它们: $_POST['name1'], $_POST['name2'], $_POST['name3'] (其中 name、name2 和 name3 是输入的值'名称属性)。
  • var_dump($_POST) 在 php 文件中,您将无法理解如何获得它!

标签: javascript php angularjs forms


【解决方案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));
  };

【讨论】:

    猜你喜欢
    • 2015-11-16
    • 2018-01-19
    • 2014-12-24
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多