gpt4 book ai didi

java - div标签不显示任何结果

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:53 26 4
gpt4 key购买 nike

在我的代码中,使用 AJAX 调用向 JSP 页面发送请求后,它不会在 <div> 中显示结果。标签。我的ID <div>标签是“div1”。控制权被传递到 JSP 页面。处理完JSP页面后,responseText中的值<div>中不显示标签。我不明白原因。我特此附上代码...我还可以将事件添加到“new.jsp”文件上的标签吗?

<%-- 
Document : Databases
Created on : Nov 10, 2014, 3:08:01 PM
Author : user
--%>

<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DatabaseMetaData"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="querywork.DBConnection"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script language="javascript" type="text/javascript">

try
{

function create(str)
{
var xmlHttp


xmlHttp=CreateXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}

var url="new.jsp"
url=url+"?dbname="+str

url=url+"&sid="+Math.random()
// out.print(url)
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send()

}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("div1").innerHTML=xmlHttp.responseText
}
}
function CreateXmlHttpObject()
{
var objXMLHttp=null
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}
}
catch(err)
{}
</script>
</head>


<body>
<form id="form1" name="form1" method="post" action="">

<h2>Databases</h2>
<label>
<input type="text" name="textfield" value="Database Name" id="dbname" />
</label>
<label>
<input type="submit" name="Submit" value="CREATE" onClick="create(textfield.value)"/>

</label>
<p>&nbsp;</p>



<%
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/", "root", "");

DatabaseMetaData dbmd = conn.getMetaData();

ResultSet ctlgs = dbmd.getCatalogs();

%>


<table border="1" cellpadding ="2"cellspacing="3">
<tr>
<td>

</td>
<td>
Database Name
</td>

</tr>
<%
while (ctlgs.next()) {
%>

<tr>
<td>
<input name="ch" type="checkbox" value="" id="" />
</td>
<td>
<%=ctlgs.getString(1)%>
</td>
</tr>
<%}
} catch (Exception e) {
out.println(e);
}%>
</table>
<a href="Delete.jsp">Drop</a>
<br></br>
<div id="div1">ffff</div>
</form>


</body>

new.jsp

<%-- 
Document : new
Created on : Nov 11, 2014, 12:41:34 PM
Author : user
--%>

<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>

<%@page import="querywork.DBConnection"%>
<%@page import="javax.faces.component.behavior.AjaxBehavior"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>

<%
try {
String responseText = new String("");
boolean flg = false;
String OptionValue = (String) request.getParameter("dbname");


Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/", "root", "");
PreparedStatement ps = conn.prepareStatement("create database " + OptionValue);
int k = ps.executeUpdate();
if (k > 0) {
flg = true;
} else {
flg = false;
}

responseText += OptionValue;

} catch (Exception e) {
out.print(e);
}
%>

最佳答案

这些是我发现的问题:

问题 1

您正在创建一个 responseText 字符串,但您没有将其写入输出流,因此它不会出现在发送回客户端的响应中。

try block 的末尾(在 new.jsp 中),执行完之后

responseText += OptionValue;

您需要添加

out.print(responseText);

问题 2

您的按钮属于submit类型,因此它会提交表单。这意味着页面将在调用 AJAX 请求后立即重新加载。将 return false 添加到您的 onclick 处理程序,如下所示:

<input type="submit" name="Submit" value="CREATE"
onclick="create(textfield.value); return false;"/>

或者将按钮从提交按钮更改为常规按钮:

<input type="button" name="Submit" value="CREATE"
onclick="create(textfield.value)"/>

问题 3

您需要在 create 方法之外声明 var xmlHttp。现在,您的 stateChanged() 方法无法访问您的 xmlHttp 变量。

关于java - div标签不显示任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26926502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com