2015-06-12 24 views
0

我试图从select语句控制的表单中取出信息并将其存储在字符串中。计划是通过电子邮件发送从用户那里收集的信息,我使用PHP来完成。我有一个想法如何做到这一点(一个由列表中有多少行控制的while循环),但我无法完全收集信息。使用Javascript将选择标记中的数据存储到字符串中

这里的循环:

var empMessage = function(){ 
     messageString = ""; 
     var noEmp = $("#drpEmp option").length; 
     var i = 0; 
     $("#drpEmp").selector.index = i;  
      while (i < noEmp){ 
       $("#drpEmp").index = i; 
       messageString = messageString + 
       "Name:    " + firstName.val + " " + MI.val + " " + lastName.val + "<br/>" + 
       "Business:   " + BusinessName.val + "<br/>" + 
       "Address:   " + address.val + "<br/>" + 
       "     " + city.val + ", " + state.val + " " + zip.val + "<br/>"; 
      } 
      messageString = "<strong>Employee Information</strong><br/>" . messageString; 
      i++; 
     } 
     $("#stringHolder").val(messageString); 
    } 

这里的JS小提琴: https://jsfiddle.net/xptxz7by/3/

我知道我大概真的了。我知道我有循环工作,列表正在计算,但我似乎无法检索信息。我也认为我正在接近发送错误的信息,可能有更好的方法,我只是没有想出如何。

+0

什么是$(“#drpEmp”)。selector.index'?我不明白你在用while循环做什么。 – Barmar

+0

你所有的'.val'应该是'.val()'。 – Barmar

+0

为什么你首先在JS中这样做?只需将表单提交给PHP并让其格式化电子邮件即可。 – Barmar

回答

0

您需要的数据位于您保存在每个选项的.data()中的Employee对象中,因此您需要获取该数据并使用属性。

messageString = "<strong>Employee Information</strong><br/>"; 
$("drpEmp option:selected").each(function() { 
    var employee = $(this).data("employee"); 
    messageString += 
     "Name:    " + employee.firstName + " " + employee.MI + " " + lastName + "<br/>" + 
     "Business:   " + employee.BusinessName + "<br/>" + 
     "Address:   " + employee.address + "<br/>" + 
     "     " + employee.city + ", " + employee.state + " " + employee.zip + "<br/>"; 
}); 
相关问题