我正在编辑表单的输入字段数据,我知道要问的是什么,不是提交表单数据的方法,但我完全坚持在ng-model中获取值datetimepicker(实际上我需要说我得到了ng-model中的值,但没有得到数组,因为我得到了另一个数组的值,名为editAdsData)。所以我想单独提交一些输入字段的值。我知道大多数ppl将是混淆了我想问的问题。让我们看一下我的代码,一切都很清楚。
在视图中:
//创建表单
<form ng-submit="edit_jobs('<?php echo $employer_jobs->id; ?>','<?php echo $employer_jobs->employer_id; ?>')" class="form-preview-display" method="post" name="submitAdsForm">
<input type = "hidden" ng-init="editAdsData.comp_name = '<?php echo $employer_jobs->comp_name;?>'">
<input placeholder="Company Name" id="company_name" value="" name="company_name" ng-model="editAdsData.comp_name" ng-pattern = "/^[a-zA-Z ]*$/" minlength="2" maxlength="150" required form-field="submitAdsForm" type="text" class="form-control">
<input type = "hidden" ng-init="start_date = '<?php echo $employer_jobs->start_date;?>'">
<input type='text' class="form-control" id="start_date" name="start_date" ng-model="start_date" datetime-picker date-only />
</form>
所以editAdsData是一个数组,我想存储所有输入字段值。但我仍然困惑为什么我在editAdsData中获取start_date的值。 这就是为什么我试图单独发布它。
所以在Controller:
$scope.edit_jobs = function($id,$emp_id){
Data.editJobs($.param($scope.editAdsData),$.param($scope.start_date),$.param($scope.end_date),$id,$emp_id).success(function (data) {
if (data.status == 0) {
// location.reload();
}else{
// location.reload();
}
});
};
在服务中:
this.editJobs = function ($data1,$data2,$data3,$id,$emp_id) {
return $http.post(site_url + "User/User/editJobsData/" + $id + "/" + $emp_id , $data1 + "<br>" + "[start_date]=>" + $data2 + "<br>" + "[end_date]=>" + $data3);
};
现在我希望data1,data2和data3的值应该是concatnate,因为我们得到单个数组的值,如:
(
[comp_name] => abc
[min_salary] => 123
[max_salary] => 12345
)
所以,任何人都可以帮助我得到这个。任何帮助将不胜感激。
提前致谢。
答案 0 :(得分:0)
为什么不将所有输入字段放在与文档的以下链接相同的对象中:https://docs.angularjs.org/guide/forms。因此所有ng-model都是object.property。
<input placeholder="Company Name" id="company_name" value="" name="company_name" ng-model="user.comp_name" class="form-control">
<input type='text' class="form-control" id="start_date" name="start_date" ng-model="user.start_date" datetime-picker date-only />
<input type="submit" ng-click="save(user)" value="Save" />
在你的控制器中只需粘贴保存功能:
$scope.save= function(user) {
$scope.user = angular.copy(user);
};
试试这样。您不需要函数中的$ id和$ emp_id,因为您正在传递这些值。使用editAdsData.start_date更改start_date和end_date,并将editAdsData变量声明为对象。
<form ng-submit="edit_jobs('<?php echo $employer_jobs->id; ?>','<?php echo $employer_jobs->employer_id; ?>')" class="form-preview-display" method="post" name="submitAdsForm">
<input type = "hidden" ng-init="editAdsData.comp_name = '<?php echo $employer_jobs->comp_name;?>'">
<input placeholder="Company Name" id="company_name" value="" name="company_name" ng-model="editAdsData.comp_name" ng-pattern = "/^[a-zA-Z ]*$/" minlength="2" maxlength="150" required form-field="submitAdsForm" type="text" class="form-control">
<input type = "hidden" ng-init="start_date = '<?php echo $employer_jobs->start_date;?>'">
<input type='text' class="form-control" id="start_date" name="start_date" ng-model="editAdsData.start_date" datetime-picker date-only />
<input type='text' class="form-control" id="end_date" name="end_date" ng-model="editAdsData.end_date" datetime-picker date-only />
</form>
var editAdsData = {};
$scope.edit_jobs = function(id, emp_id, editAdsData){
editAdsData = angular.copy(editAdsData);
Data.editJobs(editAdsData, editAdsData.start_date, editAdsData.end_date, id, emp_id).success(function (data) {
if (data.status == 0) {
// location.reload();
}else{
// location.reload();
}
});
};