-1

これが私のtest_database.htmlページです

<html>
<head> 
<title> <h1> Database Test </h1> </title>
<script>

    var xmlhttp;
    if (window.XMLHttpRequest) 
    {
        xmlhttp = new XMLHttpRequest();
    } else 
    {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    function loadXMLDoc()
    {
        xmlhttp.onreadystatechange = function() 
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200) 
            {
                var xmlObj = xmlhttp.responseXML;

                var textXML = xmlObj.documentElement.firstChild.firstChild.nodeValue;


                if (window.DOMParser)
                {
                    parser=new DOMParser();
                    var xmlDoc=parser.parseFromString(textXML,"text/xml");
                }
                else // Internet Explorer
                {
                    var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
                    xmlDoc.async=false;
                    xmlDoc.loadXML(textXML);
                }   
                var rows = xmlDoc.getElementsByTagName("row");
                mybody=document.getElementsByTagName("body")[0];
                mytable=document.createElement("table");
                mytablebody=document.createElement("tbody");
                //alert(cols.length);
                for(var i=0; i<rows.length; i++)
                {   mycurrent_row=document.createElement("tr"); 
                    var cols=rows[i].getElementsByTagName("colunm");

                   for(var j=0; j<cols.length; j++) 
                    {     mycurrentcell=document.createElement("td");  
                          currenttext=document.createTextNode(cols[j].getAttribute("colvalue"))
                          mycurrentcell.appendChild(currenttext);
                          mycurrent_row.appendChild(mycurrentcell);  
                     }  
                                     mycurrent_row.id=cols[0].getAttribute("colvalue");
                         mybutoncell = document.createElement("td");
                         but=document.createElement("input");
                         but.type="button";
                         mybutoncell.appendChild(but);                                      
                         mycurrent_row.appendChild(mybutoncell); 
                         mytablebody.appendChild(mycurrent_row);
                         but.onclick=ajaxDBDelete;
                }
                mytable.appendChild(mytablebody);
                mybody.appendChild(mytable);
                 mytable.setAttribute("border","2");    
            }
        }
        xmlhttp.open("GET","http://127.0.0.1:8080/axis2/services/database_tmm_man/SelectFromDB?",true);
        xmlhttp.send();

    }       
    function ajaxDBInsert ()
    { 
     var textvalue= document.getElementById('txbegn').value
       var xml="<university><student>";
       xml+="<egn>" +textvalue+ "</egn>";
       xml+="<fname>" + document.getElementById('txbfname').value + "</fname>";
       xml+="<mname>" + document.getElementById('txbmidname').value + "</mname>" ;
       xml+="<lname>" + document.getElementById('txblname').value + "</lname>";
       xml+="<telnum>" + document.getElementById ('txbtelnum').value + "</telnum>";
       xml+="</student></university>";

    alert(xml);
    var tranXml = escape(xml); 
    alert(tranXml);

        var url = "localhost/services/database_tmm_man/InsertInto?";
        var params = "data=" + tranXml;
        xmlhttp.open("POST", url, true);
        xmlhttp.send(params);   


    }

    function ajaxDBDelete()
    {
          var par=this.parentNode;
          while(par.nodeName.toLowerCase()!='tr')
          {
              par=par.parentNode;
          }
          alert (par.id);
         var delid="<university><student>";
         delid+= "<egn>" + par.id + "</egn>";
         delid+= "</student></university>";
         alert(delid);
         var tranDelid = escape(delid);
         alert (tranDelid);

        var url = "http://127.0.0.1:8080/axis2/services/database_tmm_man/DeleteFromDB?";
        var params = "deleteID=" + tranDelid;
        xmlhttp.open("POST", url, true);
        xmlhttp.send(params);   
    }
    </script>
</head>

<body onload="loadXMLDoc();">

EGN:                  <input type="text" id="txbegn"/><br>
FIRST NAME:           <input type="text" id="txbfname"/><br>
MIDDLE NAME:          <input type="text" id="txbmidname"/><br>
LAST NAME:            <input type="text" id="txblname"/><br>
Telephone Number:     <input type="text" id="txbtelnum"/><br>
<br>
<br>
<button type="button" name="btnInsert" onClick="ajaaclxDBInsert();">INSERT</button>
<br>
<br>
</body>
</html>

これが私のサービスのコードです

package gismo;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.net.URLDecoder;
import java.sql.*;

import javax.xml.parsers.*; 

import org.w3c.dom.*;
import org.xml.sax.InputSource;


public class database_tmm_man 

{

    Connection conn= null;
    String strEgnin;
    String strFname;
    String strMname;
    String strLname;
    String strNumtel;
    String strEgndel;

public String SelectFromDB()
{

    String strXml = "<response>";


        try {
            Class.forName("org.postgresql.Driver");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try 
        {
            conn= DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/plovdivbizlocator", "postgres", "********");
        } 

        catch (SQLException ex) 
        {

            ex.printStackTrace();
        }

        Statement mystmt = null;
        String selectQuery = "SELECT egn, firstname, middlename, lastname,telnumber FROM tanya_students";
        try 
        {
            mystmt = conn.createStatement();
            ResultSet mysr = mystmt.executeQuery(selectQuery);  

            ResultSetMetaData rsmd = mysr.getMetaData(); 
            int colCount = rsmd.getColumnCount();
                int numberrow=0;

            strXml += "<rows>";
            while (mysr.next())
            {  
                strXml += "<row id= '"+numberrow +"'>";
                for (int i=1;i<=colCount;i++) 
                {
                    String elementname = rsmd.getColumnName(i);
                    String elementValue=mysr.getString(i);
                    strXml += "<colunm colname='"+elementname+"' colvalue='"+elementValue+"'/>";
                }                   
                numberrow++;
                strXml +="</row>";
            }
            strXml += "</rows>";                

        }
        catch(Exception ex)
        {}
        strXml+="</response>";

        return strXml;


}


public String InsertIntoDB (String data) throws ClassNotFoundException
{

    try
        {   String strDecodedData = URLDecoder.decode(data);
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dbBuilder = dbFactory.newDocumentBuilder();
            Document doc = dbBuilder.parse(new InputSource(new ByteArrayInputStream(strDecodedData.getBytes("utf-8"))));
            doc.getDocumentElement().normalize();

            NodeList nList = doc.getElementsByTagName("student");
            int num=nList.getLength();
            for (int i=0;i<num;i++)
                        {       
                            Element section=(Element)nList.item(i);                     
                            strEgnin = section.getElementsByTagName("egn").item(0).getChildNodes().item(0).getNodeValue();              
                            strFname = section.getElementsByTagName("fname").item(0).getChildNodes().item(0).getNodeValue();             
                            strMname = section.getElementsByTagName("mname").item(0).getChildNodes().item(0).getNodeValue();            
                            strLname = section.getElementsByTagName("lname").item(0).getChildNodes().item(0).getNodeValue();                
                            strNumtel =section.getElementsByTagName("telnum").item(0).getChildNodes().item(0).getNodeValue();

                        }
        }

    catch (Exception ex1)
         {

         }

    Connection conn= null;

    Class.forName("org.postgresql.Driver");
    try 
    {
        conn= DriverManager.getConnection("jdbc:postgresql:/127.0.0.1:5432/plovdivbizlocator", "postgres", "********");
    } 

    catch (SQLException ex) 
        {

            ex.printStackTrace();
        }

    PreparedStatement pstmt = null;
    String insertQuery= "insert into tanya_students (egn, firstname, middlename, lastname, telnumber)";
    insertQuery +="values (?, ?, ?, ?, ?)";
    try
        {
            pstmt=conn.prepareStatement(insertQuery);
            pstmt.setString(1,strEgnin);
            pstmt.setString(2,strFname);
            pstmt.setString(3,strMname);
            pstmt.setString(4,strLname);
            pstmt.setString(5,strNumtel);
            pstmt.executeUpdate();
        }

    catch (Exception ex)
        {

        }

    return "" ;
}
public String DeleteFromDB(String deleteID) 
{
    try
    {   String strDecodeddelID = URLDecoder.decode(deleteID);
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dbBuilder = dbFactory.newDocumentBuilder();
        Document doc = dbBuilder.parse(new InputSource(new ByteArrayInputStream(strDecodeddelID.getBytes("utf-8"))));
        doc.getDocumentElement().normalize();

        NodeList nList = doc.getElementsByTagName("student");
        int num=nList.getLength();
        for (int i=0;i<num;i++)
                    {       
                        Element section=(Element)nList.item(i);                     
                        strEgndel = section.getElementsByTagName("egn").item(0).getChildNodes().item(0).getNodeValue();                 


                    }
    }

catch (Exception ex1)
     {

     }






  Connection conn= null;

    try 
    {
        Class.forName("org.postgresql.Driver");
    } 

    catch (ClassNotFoundException e) 
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    try 
    {
        conn= DriverManager.getConnection("jdbc:postgresql:/127.0.0.1:5432/plovdivbizlocator", "postgres", "********");
    } 

    catch (SQLException ex) 
        {

            ex.printStackTrace();
        }

    PreparedStatement delstmt = null;
    String delQuery= "DELETE FROM tanya_students WHERE egn= ?";
    try
        {
            delstmt=conn.prepareStatement(delQuery);
            delstmt.setString(1,strEgndel);
            delstmt.executeUpdate();
        }

    catch (Exception ex)
        {

        }

    return "" ;

}




}

各行の最後にあるボタンをクリックしてレコードを削除しようとすると、何も起こりません。データベースの最初の列である egn (同じ egn を持つ人はいない) を row.id に選択したことを言及しておくと便利です。そのため、この egn をサーバーと Web サービスに送信しています。無効なメイン プログラムでは、すべてが機能します。

挿入と同じ - データベースに挿入したいテキストボックスにデータを入力し、挿入ボタンをクリックしても何も起こりません 事前に助けてくれてありがとう

4

1 に答える 1

0

Ajax 呼び出しが適切に行われていること、またはまったく行われていることは確かですか? 生の Javascript で呼び出しを作成しているため、複数のブラウザーでテストしましたか? REST 呼び出しを手動で作成して、Web サービスがブラウザーのドキュメント コンテキストから正しく動作しているかどうかをテストできる、優れた Chrome 拡張機能がいくつかあります。(Graphic HHTP クライアントというプログラムを使っていますが、Mac 専用だと思います)。

これを行うと、問題がサーバー側なのかクライアント側なのかを判断するのに少なくとも役立ちます。

于 2013-01-02T14:07:48.117 に答える