gpt4 book ai didi

javascript - 从其他 JSP 中创建的 JS 函数接收 JSP 中的值

转载 作者:行者123 更新时间:2023-11-28 23:25:05 24 4
gpt4 key购买 nike

我编写了一段代码,我希望管理员能够通过单选按钮将用户更改为 Activity 用户或非 Activity 用户。为此,我使用了 JSP、MySQL 和 JS。

admin.jsp:

    <tr>
<td>
Name: <% out.println(firstname); %> <% out.println(lastname); %>

</td>
<td>
<% if (flag.equals("A")){ %>

Active: <input type="radio" value="A" name="<% out.println(email); %>" id="<% out.println(email); %>" onchange="pageupdatecta('<% out.println(email); %>', this.value);" checked>
Inactive: <input type="radio" value="I" name="<% out.println(email); %>" id="<% out.println(email); %>" onchange="pageupdatecti('<% out.println(email); %>', this.value);">
<%
}else if(flag.equals("I")){%>

Active: <input type="radio" value="A" name="<% out.println(email); %>" id="<% out.println(email); %>" onchange="pageupdatecta('<% out.println(email); %>', this.value);">
Inactive: <input type="radio" value="I" name="<% out.println(email); %>" id="<% out.println(email); %>" onchange="pageupdatecti('<% out.println(email); %>', this.value);" checked>
<%
} %>
<script type="text/javascript">
function pageupdatecta(emailid, optedval) {
location.href='changeToActive.jsp?email='+emailid+'&optedval='+o‌​ptedval;
}
function pageupdatecti(emailid, optedval) {
location.href='changeToInactive.jsp?email='+emailid+'&optedval='+o‌​ptedval;
}
</script>

changeToActive.jsp:

    try{

Class.forName("com.mysql.jdbc.Driver");
System.err.println("Driver loaded!");

Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost/work", "root", "MyNewPass");
System.err.println("Database Connected..");

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);

stmt.executeUpdate("update assignment set flag='A' where email='"+email+"'");
System.err.println("A"+email);

}

你能告诉我如何从函数接收值,并使我的代码正常工作吗?

最佳答案

下面的代码将从工作数据库的分配表中获取 id=1 的记录。
单选按钮的选中状态将由数据库中现有的选中状态决定。

在这里,一旦您将状态从 Activity 更改为非 Activity 或将非 Activity 更改为 Activity ,这些更改将成功反射(reflect)在数据库中。

index.jsp 页面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" %>
<%@ page import="java.sql.*,stack.filter.JDBCConnector" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Radio Select</title>
</head>
<body>
<%
Connection con = null;
String firstname = null;
String lastname = null;
String email = null;
String flag = null;
try {
con = JDBCConnector.connect_database();
Statement stmt = con.createStatement();
ResultSet rs=stmt.executeQuery("select * from assignment where id=1");

while(rs.next()){
firstname=rs.getString(2);
lastname=rs.getString(3);
email=rs.getString(4);
flag=rs.getString(5);
}
System.out.println(""+firstname+" "+lastname+" "+email+" "+flag);
} catch (Exception e) {
e.printStackTrace();
} finally {
con.close();
}
%>
<table>
<tr>
<td>
Name: <% out.println(firstname); %> <% out.println(lastname); %>
</td>
<td>
<%
if(flag.equals("A")){
%> Active: <input type="radio" name="<%=email%>" id="r1" value="A" onclick="updateStatus()" checked="checked"/>
In active: <input type="radio" name="<%=email%>" id="r2" value="I" onclick="updateStatus()"/>
<%
}else if(flag.equals("I")){
%> Active: <input type="radio" name="<%=email%>" id="r1" value="A" onclick="updateStatus()"/>
In active: <input type="radio" name="<%=email%>" id="r2" value="I" onclick="updateStatus()" checked="checked"/>
<%
}
%>
</td>
</tr>
</table>
<script type="text/javascript">
function updateStatus(){
if (document.getElementById('r1').checked) {
location.href='changeToActive.jsp?email='+'${email}'+'&status=A';
}else if (document.getElementById('r2').checked) {
location.href='changeToActive.jsp?email='+'${email}'+'&status=I';
}
}
</script>
</body>
</html>

changeToActive.jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.sql.*,stack.filter.JDBCConnector" %>
<%
Connection con = null;
try {
con = JDBCConnector.connect_database();
System.err.println("Database Connected..");

Statement stmt = con.createStatement();
String status = request.getParameter("status");
String email = request.getParameter("email");
int i= stmt.executeUpdate("UPDATE assignment SET status='"+status+"' where email='"+email+"'");
if(i==1){
out.println("Successfully updated the status");
}

} catch (Exception e) {
e.printStackTrace();
}finally{
con.close();
}
%>

JDBCConnector.java 类:创建用于在您的应用中集中创建连接对象。

package stack.filter;

import java.sql.Connection;
import java.sql.DriverManager;
public class JDBCConnector {
public static Connection connect_database(){
Connection con = null;
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/work", "root", "root");
} catch (Exception e) {
e.printStackTrace();
} finally {
if(con!=null)
{
System.out.println("Connected...");
}
}
return con;
}
}

分配表:

CREATE TABLE `assignment` (
`id` INT(11) NOT NULL,
`firstname` VARCHAR(30) DEFAULT NULL,
`lastname` VARCHAR(30) DEFAULT NULL,
`email` VARCHAR(30) DEFAULT NULL,
`status` CHAR(1) DEFAULT NULL,
PRIMARY KEY (`id`)
)

/*Data for the table `assignment` */

INSERT INTO `assignment`(`id`,`firstname`,`lastname`,`email`,`status`) VALUES (1,'rohit','gaikwad','rohitgaikwad@xyz.com','I');

注意: id=1 主键是硬编码的,我猜你有一些逻辑在你的 html 表中显示分配记录。

关于javascript - 从其他 JSP 中创建的 JS 函数接收 JSP 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39717222/

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