Div 标记不显示任何结果
Div tag doesn't show any result
在使用
AJAX 调用向 JSP 页面发送请求后,在我的代码中,它不会在 <div>
标记中显示结果。我的<div>
标签的ID是"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> </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>
新.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
块的末尾(以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;"/>
或者将你的臀部从submit
按钮改为常规按钮:
<input type="button" name="Submit" value="CREATE"
onclick="create(textfield.value)"/>
问题 3
您需要在create
方法之外声明var xmlHttp
。就像现在一样,您的stateChanged()
方法无法访问您的xmlHttp
变量。
相关文章:
- 尝试添加一个选项以使用append进行选择,但没有任何结果
- 比较数组中的连续元素不会返回任何结果(javascript)
- Ajax 不返回任何结果
- jQuery $.get() JSON 函数正在执行,但不会产生任何结果
- 使用ajax运行php脚本不会显示任何结果
- 使用角度剑道列表视图不显示任何结果
- 流星呼叫没有给出任何结果
- JSON API 不会在 jquery getJSON 中返回任何结果
- JavaScript 函数不返回任何结果
- 执行带有 WHERE 子句的 Sql 在 Phonegap 中不返回任何结果
- 我正在尝试在这个基本的xhtml页面上使用JavaScript和XPath.但我没有得到任何结果
- JS循环不产生任何结果
- 使用 Javascript 在 MongoDB 中使用希腊字符执行查询不会返回任何结果
- 自定义谷歌搜索不会返回任何结果
- Div 标记不显示任何结果
- 为什么对于一个手机号码,这个数据表没有显示任何结果
- Facebook JS SDK未返回任何结果
- gullow管道(gullow.dest())不会创建任何结果
- Postgre使用Ajax函数在带有复选框的数据库中进行多记录删除查询,不会返回任何结果;不起作用
- 自动完成:检测不到远程数据源的任何结果