2015-10-13 51 views
0

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

`$_POST['dynamic_input']` 

,但它是如何可以访问三个现场值从输入字段使用$_POST阵列来了吗?

+0

所有你谈论这些领域都有自己的ID。我的意思是,你应该从$ _POST var索引中检索它们:$ _POST ['name1'],$ _POST ['name2'],$ _POST ['name3'](其中name,name2和name3是输入的值'名称属性)。 – Alex

+0

'var_dump($ _ POST)'在php文件中,你将不知所措并且如何得到它! – mohsen

回答

1

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

//添加字段对象作为参数传递给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 protected]"}] 

对于传递到您的服务器,这个软件包都归结为是或格式化根据您的偏好,并通过$ 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 protected]"} 
    //alert(JSON.stringify(postData)); 
    };