2017-08-16 122 views
0

我有一个小窗体,并在该窗体中我有一个下拉列表。列表项是动态生成的。角度:表单提交与动态下拉列表

$http({ 
    url: 'alljobs.php', 
    method: "GET", 
    params: { 
     uid: viewer_id 
    } 
}).success(function(data) { 
    $scope.jobss = data.content; 
}); 

下面是表单提交的代码。

$scope.formprofile33 = function() { 
    var allData33 = { 
     'msg': $scope.msg, 
     'emp_id': viewer_id, 
     'job_id': job.job_id, 
     'job_title': $scope.jobss.SelectedOption.job_title, 
     // 'job':job, 
     'user_id': user_id 
    } 

    $http({ 
     method: 'POST', 
     url: 'send_msg.php', 
     data: allData33, 
     headers: { 
      'Content-Type': 'application/x-www-form-urlencoded' 
     } 
    }).success(function(data) { 
     if (!data.success) { 
      $scope.message = data.errors.message; 
     } else { 
      $scope.message = ''; 
      alert('Your message has been sent.'); 
      $scope.message = ''; 
     } 
    }); 
}; 

这里是表格。

<form name="formProfile33" method="post" id="formProfile33" role="form" ng-submit="formprofile33()"> 
    <div class="container"> 
     <div class="row"> 
      <div class="col-xs-12"> 
       <div class="row"> 
        <div class="col-xs-10">           
         <div class="col-xs-12 s_ma"> 
          <select id="job" name="job" class="search_color selectors form-control" ng-model="job" required="required" ng-options="item.job_title for item in jobss track by item.job_id"> 
           <option value=""> Select Job *</option>  
          </select> 
         </div> 
         <textarea name="msg" ng-model="msg" class="form-control textbox1" id="msg" placeholder="Write your message" required="required" rows="3"></textarea> 
        </div> 
       </div> 
      </div> 
     </div> 
     <center> 
      <button type="submit" class="btn btn-home" name="btn-save1" id="btn-save1" required="required"><i class="icon ion-email"></i> Send Message </button> 
     </center> 
    </div> 
</form> 

问题是我不能在表单提交时传递下拉值和id。

我得到下面的错误。

类型错误:无法读取的不确定

请告知我如何提交表单与下拉的id和值属性“JOB_TITLE”。

+0

你试图这样一组数据:数据:JSON.stringify(allData33) , –

+0

为什么这应该存在? $ scope.jobss.SelectedOption。你不写任何东西,所以这个对象是未定义的 – Vitalii

+0

因为你有选择ng-model =“job”,你有没有试过使用$ scope.job? – Markus

回答

0

您的示例将作业项目设置为范围字段“job”=>ng-model="job", 完整选定的项目可通过$scope.job访问。

尝试$scope.job.job_title$scope.job.job_id

打印出你的HTML是随时随地的好帮手:Full job item: {{job | json}}

https://plnkr.co/edit/VenFVchI0brGZNC2Q7Fn?p=preview