下面是我的代码:后台的数据出来了,但是是一个整字符串,不是想要的单个的比如:id有10个:1,2,3....结果出来的就是一个123字符串,不知道问题出在哪里function subs(bid) //函数名
{
$.ajax({ //ajax方法
type:"post",
dataType:"xml",
url:"<%=request.getContextPath()%>/MeaBackConsTeam.do",
data:{bid:bid },
success:function(data){
$(data).find("root").each(function(){
var team_id=$(this).children("consTeamId").text(); //节点值
var team_name=$(this).children("consTeamName").text(); //节点值
$('#selconsTeam').append("<option value='" + team_id + "'>" + team_name + "</option>"); })
}
});
}
{
$.ajax({ //ajax方法
type:"post",
dataType:"xml",
url:"<%=request.getContextPath()%>/MeaBackConsTeam.do",
data:{bid:bid },
success:function(data){
$(data).find("root").each(function(){
var team_id=$(this).children("consTeamId").text(); //节点值
var team_name=$(this).children("consTeamName").text(); //节点值
$('#selconsTeam').append("<option value='" + team_id + "'>" + team_name + "</option>"); })
}
});
}
import java.util.List;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import com.longhao.daoimpl.pro.ProConstDAO;
import com.longhao.model.pro.ConstructionTeam;/**
* *
*/
public class MeaBackConsTeamAction extends Action{ private ConstructionTeam consTeam;
private ProConstDAO proDAO;
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setContentType("text/xml;charset=UTF-8");
PrintWriter out = response.getWriter();
String bid=request.getParameter("bid");
System.out.println("标段"+bid);
proDAO=new ProConstDAO();
List<ConstructionTeam> constList=proDAO.findByBidsegmentId(Long.parseLong(bid));
//String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
//out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
out.println("<root>");
if(constList!=null)
{
for(int i=0;i<constList.size();i++)
{
consTeam=new ConstructionTeam();
consTeam=(ConstructionTeam)constList.get(i);
//out.println("<node id="+i+">");
out.println("<consTeamId> " + consTeam.getId() + " </consTeamId>");
out.println("<consTeamName> " + consTeam.getConsTName() + " </consTeamName>");
//out.println("</node>");
}
}
out.println("</root>");
return null;
}
}
把后台代码也贴上
我用alert弹出数据都是正常的数据没有特殊字符,但就是把值给串起来了
<tr>
<td>游戏种类</td>
<td>
<input class="easyui-combobox"
name="gameDto.gameTypeId"
url="gameInfo!findGameTypeInfo.action"
valueField="gameTypeId"
textField="gameTypeName"
multiple="true"
panelHeight="auto"/>
</td>
</tr>
jquery把值给串起来了,主要的问题出在后台输出xml,因为只有一个root根节,循环root只有一次,jquery就很负责的把所有值给拿出来,并串起来;如果循环consTeamId节点话,循环有多次,但问题是自己循环自己节点数量可以,但是数值却得不到,解决的方法就是在root与consTeamId之间加一个node的父节点,node也要与consTeamId一起循环,如此在页面就循环node就可以了