Gopal Krishna Mareti:
Eu tenho meus valores lat e lng no banco de dados e tentar levá-los ao meu javascript no clique de um botão com id ( "track"). mas o código a seguir gera um erro de "StepUp" chamado em um objeto que não implementa interface de HTMLInputElement. como resolver este
Desde já, obrigado.
Create.js
document.getElementById("track").onclick=function tracking(){
console.log("Tracking");
var tname=document.getElementsByName("frname");
var params ={
trname:tname,
bt:"I"
}
$.get("SC",$.param(params),function(responsetext){
var a=responsetext;
console.log(a);
});
}
ServerConnect.java
if(bt1.equals("I")){
String tname=request.getParameter("tname");
String uname=(String)session.getAttribute("uname");
try {
cords =requestingclass.getupdatedlocation(tname,uname);
String lat=cords.get(1);
String lng=cords.get(2);
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(lat);
response.getWriter().write(lng);
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
requestingclass.java
public static ArrayList<String> getupdatedlocation(String tname, String uname) throws ClassNotFoundException, SQLException {
Connection con = ConnectionUtility.connect();
PreparedStatement ps =con.prepareStatement("select lat,lng from requesttable where requester=? and requested=?");
ps.setString(1, uname);
ps.setString(2, tname);
ArrayList<String> cords=null;
ResultSet rs= ps.executeQuery();
while(rs.next()){
cords=new ArrayList<String>();
cords.add(rs.getString(1));
cords.add(rs.getString(2));
}
return cords;
}
Rory McCrossan:
É esta linha causando o problema:
var tname = document.getElementsByName("frname");
tname
detém um objeto Elemento. Em seguida, tentar enviá-lo nos dados do pedido, para jQuery tenta serialização-lo, causando o problema.
Eu presumo que a partir do contexto você em vez deseja obter o valor do elemento, então use isso em vez disso:
var tname = document.getElementsByName("frname").value;