p2p.wrox.com Forums

p2p.wrox.com Forums (http://p2p.wrox.com/index.php)
-   JSP Basics (http://p2p.wrox.com/forumdisplay.php?f=92)
-   -   combobox unicode problem (http://p2p.wrox.com/showthread.php?t=82222)

trexi January 12th, 2011 01:50 PM

combobox unicode problem
 
hi,
I am a beginner in Java, JSP, and Ajax and I'm trying to create a simple form with a combobox which reads names of minerals from a database and then prints their ID.
My problem is, if I get name of mineral with special letters (š,ž,č), it get me error. My database is Unicode (UTF-8). I think there is problem with AJAX, bud i dont know where.
Can anybody help me with this?

table:
Code:

NERASTID            NERASTNAZOV
----------------------------------------
      2                      ankerit
      3                      magnetit
      4                      markazit
      9                      nežiaruvzdorné íly
    110                      železné rudy
.
.
.
.etc..

combo.jsp:
Code:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.sql.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<title>podpora</title>

<script type="text/javascript">

        function showEmp(nerast_value)
                {
                if(document.getElementById("nerastid").value!="-1")
                {
                        xmlHttp=GetXmlHttpObject();
                       
                        var url="getuser.jsp";
                        url=url+"?nerastnazov="+nerast_value;
                       
                       

                        xmlHttp.onreadystatechange=stateChanged;
                        xmlHttp.open("GET",url,true);
                        xmlHttp.send(null);

                }
                else
                {
                        alert("Please Select mineral Id");
                }
                       
        }

        function stateChanged()
                {
               
                document.getElementById("nerastid").value ="";
                        if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
                        {
       
                          var showdata = xmlHttp.responseText;
                            var strar = showdata.split(":");
       
                        if(strar.length==1)
                        {
                                  document.getElementById("nerastid").focus();
                                  alert("Please Select mineral Id");
                                  document.getElementById("nerastnazov").value =" ";
                                  document.getElementById("nerastid").value =" ";

                        }
                        else if(strar.length>1)
                                {
                                var strname = strar[1];
                                document.getElementById("nerastid").value= strar[1];
                               
                                }
       
                        }
                }

        function GetXmlHttpObject()
        {
                var xmlHttp=null;
                try
                        {
                        // Firefox, Opera 8.0+, Safari
                        xmlHttp=new XMLHttpRequest();
                        }
                catch (e)
                        {
                        //Internet Explorer
                        try
                          {
                                  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
                          }
          catch (e)
                  {
                          xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                  }
        }
        return xmlHttp;
        }

       
</script>

</head>
<body>

<form name="nerasty"><br>
<br>
<table border="0" width="400px" align="center" bgcolor="#ffffff">
        <div id="mydiv"></div>
        <tr>
                <td><b>Druh nerastu</b></td>
                <td><select name="nerasty" onchange="showEmp(this.value);">                       
                        <option value="-1">----------Select-----------</option>
                        <%
                               
                       
                                Connection conn = null;

                                int sumcount = 0;
                                Statement st;
                                try {
                                        Class.forName("oracle.jdbc.driver.OracleDriver");
                                        conn = DriverManager.getConnection(
                                                        "jdbc:oracle:thin:@w08:1521:ORCL", "user","pass");
                                        String query = "select * from V_TBL_NERASTY";

                                        st = conn.createStatement();
                                        ResultSet rs = st.executeQuery(query);
                        %>

                        <%
                                while (rs.next()) {
                        %>

                        <option value="<%=rs.getString(2)%>"><%=rs.getString(2)%></option>

                        <%
                                }
                        %>

                        <%
                                } catch (Exception e) {
                                        e.printStackTrace();
                                }
                        %>
                </select></td>
       
        </tr>
                <td><b>Kod:</b></td>
                <td> <input type="text" id="nerastid" name="nerastid" value=""></td>
        </tr>
       
</table>
</form>
<table border="0" width="100%" align="center">
        <br>
        <br>
</table>
</body>
</html>

getuser.jsp

Code:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%
       
       
        String nerastnazov = request.getParameter("nerastnazov").toString();
       
       
        String data = "";

        Connection conn = null;

        int sumcount = 0;
        Statement st;
        try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                conn = DriverManager.getConnection(
                                "jdbc:oracle:thin:@w08:1521:ORCL", "user","pass");
                String query = "select * from V_TBL_NERASTY where nerastnazov = '"+nerastnazov+"'";
               
               
                st = conn.createStatement();
                ResultSet rs = st.executeQuery(query);
               
               
                while (rs.next()) {
                        data = ":" + " " + rs.getString(1) + ":";
                       
                }

                out.println(data);
        } catch (Exception e) {
                e.printStackTrace();
        }
%>


trexi January 18th, 2011 12:05 PM

ok. i figured it out. There was problem with sending String..

combo.jsp
Code:

...
function showEmp(nerast_value)
      {
      if(document.getElementById("nerastid").value!="-1")
      {
          xmlHttp=GetXmlHttpObject();
       
        var url="getuser.jsp";
        url=url+"?nerastid="+nerast_value;
       
       

        xmlHttp.onreadystatechange=stateChanged;
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
...
<option value="<%=rs.getString(1)%>"><%=rs.getString(2)%></option>
...

getuser.jsp

Code:

...
String nerastid = request.getParameter("nerastid").toString();
...
String query = "select * from V_TBL_NERASTY where nerastid = '"+nerastid+"'";



All times are GMT -4. The time now is 03:52 PM.

Powered by vBulletin®
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
© 2013 John Wiley & Sons, Inc.