在管理摘要页面中编辑条目时,“主标题”字段默认为“操作”,添加新条目后可以确定 条目,但在编辑该字段中具有不同内容的现有条目(即“未来计划”)时不行,然后将其覆盖为“操作”。 Firefox和Chrome都会发生这种情况。
因此,为什么在单击“编辑”按钮时,“主要标题”的下拉列表默认为“操作”。我不希望它默认为“操作”,而是我需要它加载原始的“主要标题”选项,而不管它是“操作”还是“未来计划”
以下代码:
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<%
/* New MSR Template */
String scriptName = "ad_summary.jsp";
String nextPage = "#";
String prevPage = "#";
%>
<%@include file="includes/getSession.jsp" %>
<%@include file="includes/getGlobal.jsp" %>
<%
String action="";
if (request.getParameter("action") !=null) {action = (String)request.getParameter("action");}
String rowid="";
if (request.getParameter("rowid") !=null) {rowid = (String)request.getParameter("rowid");}
String service="";
if (request.getParameter("service") !=null) {service = (String)request.getParameter("service");}
String mainHeading="";
if (request.getParameter("mainHeading") !=null) {mainHeading = (String)request.getParameter("mainHeading");}
if (!mainHeading.equals("")){
mainHeading = Eacute(mainHeading);
}
String serviceName="";
if (request.getParameter("serviceName") !=null) {serviceName = (String)request.getParameter("serviceName");}
String description="";
if (request.getParameter("description") !=null) {description = (String)request.getParameter("description");}
if (!description.equals("")){
description = Eacute(description);
}
String submit="";
if (request.getParameter("submit") !=null) {submit = (String)request.getParameter("submit");}
String cancel="";
if (request.getParameter("cancel") !=null) {cancel = (String)request.getParameter("cancel");}
String itemOrder="1";
if (request.getParameter("itemOrder") !=null) {itemOrder = (String)request.getParameter("itemOrder");}
int whichOrder = Integer.valueOf(itemOrder);
boolean ErrorsDetected = false;
java.util.ArrayList<String> ErrorList = new java.util.ArrayList<String>();
Connection conn = null;
PreparedStatement statement = null;
PreparedStatement statement1 = null;
PreparedStatement statement2 = null;
ResultSet resultset = null;
boolean resultsetHasData = false;
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/LocalMSR");
conn = ds.getConnection();
String sqlString = "";
//Pick up maximum value
int MaxValue = 0;
sqlString = "SELECT MAX(item_order)";
sqlString = sqlString + " FROM msr_summary_notices ";
sqlString = sqlString + " WHERE (year = "+MSR_YEAR+") AND (month ="+MSR_MONTH_NUMBER+") AND (topic NOT IN ('Notices','Services'))";
statement = conn.prepareStatement(sqlString);
resultset = statement.executeQuery();
resultsetHasData = resultset.next();
if (resultsetHasData){
MaxValue = Integer.valueOf(resultset.getString("MAX(item_order)")!=null?resultset.getString("MAX(item_order)"):"0");
}
resultset.close();
statement.close();
if (action.equals("move_up")){
action="add";
if (whichOrder != 1){
int CurrentOrder = whichOrder;
int NewOrder = whichOrder - 1;
String sqlString1 = "UPDATE msr_summary_notices set item_order = "+String.valueOf(NewOrder)+" WHERE item_order = "+String.valueOf(CurrentOrder);
String sqlString2 = "UPDATE msr_summary_notices set item_order = "+String.valueOf(CurrentOrder)+" WHERE item_order = "+String.valueOf(NewOrder)+" AND absid <>"+rowid;
statement1 = conn.prepareStatement(sqlString1);
int RowsAffected1 = (statement1.executeUpdate());
statement1.close();
statement2 = conn.prepareStatement(sqlString2);
int RowsAffected2 = (statement2.executeUpdate());
statement2.close();
}else{
// Do nothing coz you can move up above 1
}
}
if (action.equals("move_down")){
action="add";
if (whichOrder != MaxValue){
int CurrentOrder = whichOrder;
int NewOrder = whichOrder + 1;
String sqlString1 = "UPDATE msr_summary_notices set item_order = "+String.valueOf(NewOrder)+" WHERE item_order = "+String.valueOf(CurrentOrder);
String sqlString2 = "UPDATE msr_summary_notices set item_order = "+String.valueOf(CurrentOrder)+" WHERE item_order = "+String.valueOf(NewOrder)+" AND absid <>"+rowid;
statement1 = conn.prepareStatement(sqlString1);
int RowsAffected1 = (statement1.executeUpdate());
statement1.close();
statement2 = conn.prepareStatement(sqlString2);
int RowsAffected2 = (statement2.executeUpdate());
statement2.close();
}else{
// Do nothing coz you can move down below MaxValue
}
}
if (submit.equals("Add Item")){
if (mainHeading.equals("")){
ErrorsDetected = true;
ErrorList.add("Main Heading Can Not Be Blank");
}
// if (serviceName.equals("")){
// ErrorsDetected = true;
// ErrorList.add("Sub Topic Can Not Be Blank");
// }
if (description.equals("")){
ErrorsDetected = true;
ErrorList.add("Description Can Not Be Blank");
}
if (!ErrorsDetected){
sqlString = " INSERT INTO msr_summary_notices (year,month,topic,sub_topic,item,item_order) ";
sqlString +=" VALUES ( ";
sqlString += MSR_YEAR+",";
sqlString += MSR_MONTH_NUMBER+",";
sqlString += "'"+ mainHeading.replaceAll("'","''") +"',";
sqlString += "'"+ serviceName.replaceAll("'","''") +"',";
sqlString += "'"+ description.replaceAll("'","''") +"',";
sqlString += String.valueOf(MaxValue+1);
sqlString += ")";
statement = conn.prepareStatement(sqlString);
int RowsAffected = (statement.executeUpdate());
statement.close();
}
action = "add";
// mainHeading = "";
// serviceName = "";
description="";
}
if (submit.equals("Update Item")){
if (mainHeading.equals("")){
ErrorsDetected = true;
ErrorList.add("Main Heading Can Not Be Blank");
}
// if (serviceName.equals("")){
// ErrorsDetected = true;
// ErrorList.add("Sub Topic Can Not Be Blank");
// }
if (description.equals("")){
ErrorsDetected = true;
ErrorList.add("Number Can Not Be Blank");
}
if (!ErrorsDetected){
sqlString = " UPDATE msr_summary_notices ";
sqlString += " SET topic = '"+ mainHeading.replaceAll("'","''") +"',";
sqlString += " sub_topic = '"+ serviceName.replaceAll("'","''") +"',";
sqlString += " item = '"+ description.replaceAll("'","''") +"'";
sqlString += " WHERE absid = "+rowid;
statement = conn.prepareStatement(sqlString);
int RowsAffected = (statement.executeUpdate());
statement.close();
}
action = "add";
mainHeading = "";
serviceName = "";
description="";
}
if (submit.equals("Delete Item")){
sqlString = " DELETE FROM msr_summary_notices ";
sqlString += " WHERE absid = "+rowid;
statement = conn.prepareStatement(sqlString);
int RowsAffected = (statement.executeUpdate());
statement.close();
action = "add";
mainHeading = "";
serviceName = "";
description="";
}
if (cancel.equals("Cancel")){
action = "add";
mainHeading = "";
serviceName = "";
description="";
}
String absid = "";
String item = "";
String sub_topic = "";
String topic = "";
String item_order = "";
String item_no_hash = "";
String sub_topic_no_hash = "";
sqlString = "SELECT absid, topic, sub_topic, item ,item_order";
sqlString = sqlString + " FROM msr_summary_notices ";
sqlString = sqlString + " WHERE (year = "+MSR_YEAR+") AND (month ="+MSR_MONTH_NUMBER+") AND (topic NOT IN ('Notices','Services')) ";
sqlString = sqlString + " ORDER BY item_order ";
statement = conn.prepareStatement(sqlString);
resultset = statement.executeQuery();
resultsetHasData = resultset.next();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>GÉANT Monthly Service Reports</title>
<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/>
<!-- Template CSS -->
<link rel="stylesheet" type="text/css" href="./media/css/geant.css" />
<link rel="stylesheet" type="text/css" href="./media/css/ddaccordion.css" />
<link rel="stylesheet" type="text/css" href="./media/css/tweaks.css" />
<!-- Dynamic Drive Smooth Navigational Menu Script -->
<script type="text/javascript" src="./media/js/ddaccordion.js"></script>
<script type="text/javascript" src="./media/js/jquery-1.2.6.js"></script>
<script type="text/javascript" src="./media/js/jquery-1.3.2.js"></script>
<!-- start of sub menu -->
<%@include file="includes/administration_submenu.jsp" %>
<!-- end of sub menu -->
<script type="text/javascript">
function showRow(RowId){
var Row = document.getElementById("tr_"+RowId);
Row.style.backgroundColor="#CCCCFF";
}
function hideRow(RowId){
var Row = document.getElementById("tr_"+RowId);
Row.style.backgroundColor="#FFFFFF";
}
function doDummy(id) {
<% if ((action.equals("move_up"))||(action.equals("move_down"))){
out.println("showRow("+rowid+")");
}%>
<% if ((action.equals("edit"))||(action.equals("delete"))){ %>
<% if (mainHeading.equals("Operations")){ %>
document.forms["addNotices"].mainHeading.value = "Operations";
<%}%>
<% if (mainHeading.equals("Future Plans")){%>
document.forms["addNotices"].mainHeading.value = "Future Plans";
<%}%>
<%}%>
}
</script>
</head>
<body onLoad="doDummy(0)">
<div class='nineninefour whitebg'>
<!-- start of header -->
<%@include file="includes/header.jsp" %>
<!-- end of header -->
<div class='clearboth weeny'> </div>
<div class='ninesevensix dottedline'>
<div class='floatleft breadcrumbs'>
<span><a href="home.jsp">MSR</a></span><span> > </span><span>Administration</span><span> > </span><span>Management Summary</span>
</div>
<div class='floatright breadcrumbs'>
<script type="text/javascript" src="./media/js/datetime.js"></script>
</div>
<div class='clearboth weeny'> </div>
</div>
<div class='ninesevensix paddedtop'>
<!-- start of main menu -->
<%@include file="includes/mainmenu.jsp" %>
<!-- end of main menu -->
<div class='seventhirty floatright'>
<div class='floatleft seventwenty'>
<div id="Main.text">
<table width="720" border="0" cellspacing="0" cellpadding="0">
<tr><td>
<h3 class="blueblack nopad">Management Summary - <%=MSR_MONTH%> <%=MSR_YEAR%></h3>
</td>
<%@include file="includes/pagemenu_default.jsp" %>
</tr>
<tr><td colspan="2" class="hr_seventwenty maindottedline"> </td></tr>
</table>
<table width="720" border="0" cellspacing="5" cellpadding="0">
<form name="addNotices" action="ad_summary.jsp" method="post">
<input type="hidden" name="action" value="<%=action%>"/>
<input type="hidden" name="rowid" value="<%=rowid%>"/>
<%
/* Array to return any errors that may have been thrown at the top of the page */
if (ErrorsDetected) {
for (int i=0; i< ErrorList.size(); i++){
out.print("<tr bgcolor = '#FF6666'><td colspan='2' align='center'><strong>"+ErrorList.get(i)+"</strong></td></tr>");
}
}
if (action.equals("delete")) {
out.print("<tr bgcolor = '#FFFF66'><td colspan='2' align='center'><strong>Are You Sure You Want To Delete This Record?</strong></td></tr>");
}
%>
<tr>
<td valign="top" width="150">Main Heading</td>
<td>
<select name="mainHeading" id="mainHeading">
<option value="Operations">Operations</option>
<option value="Future Plans">Future Plans</option>
</select>
</td>
</tr>
<tr>
<td valign="top">Sub Topic</td>
<td><input type="text" size="50" name="serviceName" id="serviceName" value="<%=serviceName%>" /></td>
</tr>
<tr>
<td valign="top">Description</td>
<td><textarea name="description" id="decription" rows="5" cols="68" ><%=description%></textarea></td>
</tr>
<tr>
<% if (action.equals("edit")){%>
<td colspan="2" align="center"><input type="submit" name="submit" value="Update Item"></td>
<% }%>
<% if (action.equals("delete")){%>
<td colspan="2" align="center"><input type="submit" name="submit" value="Delete Item"> <input type="submit" name="cancel" value="Cancel"></td>
<% }%>
<% if (action.equals("add")||action.equals("")){%>
<td colspan="2" align="center"><input type="submit" name="submit" value="Add Item"></td>
<% }%>
</tr>
</form>
</table>
<table width="720" border="0" cellspacing="0" cellpadding="0">
<tr><td>
<h3 class="blueblack nopad">Current Management Summary - <%=MSR_MONTH%> <%=MSR_YEAR%></h3>
</td>
</tr>
<tr><td class="hr_seventwenty maindottedline"> </td></tr>
</table>
<% if (resultsetHasData) { %>
<table class="datatable" width="720" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#BEDC00">
<th class="tablepad thborder_bottom">Main Heading</th>
<th class="tableborder_left_white">Sub Topic</th>
<th class="tableborder_left_white">Description</th>
<th colspan="4" class="tableborder_left_white">Actions</th>
</tr>
<%
int RowCount = 0;
while (resultsetHasData) {
RowCount++;
absid = resultset.getString("absid")!=null?resultset.getString("absid"):"";
item = resultset.getString("item")!=null?resultset.getString("item"):"";
sub_topic = resultset.getString("sub_topic")!=null?resultset.getString("sub_topic"):"";
topic = resultset.getString("topic")!=null?resultset.getString("topic"):"";
item_order = resultset.getString("item_order")!=null?resultset.getString("item_order"):"0";
item_no_hash = UnHashIt(item);
sub_topic_no_hash = UnHashIt(sub_topic);
// Convert Geant into E-acute version
// item = Eacute(item);
// sub_topic = Eacute(sub_topic);
// topic = Eacute(topic);
%>
<tr id="tr_<%=String.valueOf(RowCount)%>" onmouseover="showRow(<%=String.valueOf(RowCount)%>)" onmouseout="hideRow(<%=String.valueOf(RowCount)%>)">
<td class="tablepad tableborder_bottom" valign="top" width="200px">(<%=String.valueOf(RowCount)%>) <%=topic%></td>
<td valign="top" width="200px" class="tableborder_left"><%=sub_topic%></td>
<td valign="top" width="280px" class="tableborder_left"><%=item%></td>
<td valign="top" class="tableborder_left"><a href="ad_summary.jsp?action=edit&rowid=<%=absid%>&description=<%=item_no_hash%>&serviceName=<%=sub_topic_no_hash%>&mainHeading=<%=topic%>" target="_top"><img src="./media/images/edit.jpeg" border="0"/></a></td>
<td valign="top" class="tableborder_bottom"><a href="ad_summary.jsp?action=delete&rowid=<%=absid%>&description=<%=item_no_hash%>&serviceName=<%=sub_topic_no_hash%>&mainHeading=<%=topic%>" target="_top"><img src="./media/images/delete.jpeg" border="0"/></a></td>
<td valign="top" class="tableborder_bottom"><a href="ad_summary.jsp?action=move_up&rowid=<%=absid%>&itemOrder=<%=item_order%>" target="_top"><img src="./media/images/16_arrow_up.png" border="0"/></a></td>
<td valign="top" class="tableborder_bottom"><a href="ad_summary.jsp?action=move_down&rowid=<%=absid%>&itemOrder=<%=item_order%>" target="_top"><img src="./media/images/16_arrow_down.png" border="0"/></a></td></tr>
<% resultsetHasData = resultset.next(); } %>
</table>
<% } else { // endif resultset1HasData%>
<p>There are no Management Summary Items for this period.</p>
<% } %>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</div>
<h3 class='blueblack'> </h3>
</div>
<!-- Right hand menu was here -->
<div class='clearboth weeny'> </div>
</div>
<div class='clearboth weeny'> </div>
</div>
</div>
<!-- start of global footer -->
<%@include file="includes/footer.jsp" %>
<!-- end of global footer -->
</body>
</html>
<%
if (resultset != null) {
try {
resultset.close();
}
catch (SQLException e) {
// Process Errors
}
resultset = null;
}
if (statement != null) {
try {
statement.close();
}
catch (SQLException e) {
// Process Errors
}
statement = null;
}
if (conn != null) {
try {
conn.close();
}
catch (SQLException e) {
// Process Errors
}
conn = null;
}
%>
<%!
private String Eacute(String inputString){
String convString = inputString;
String replaceString = "";
if (convString.indexOf("GEANT")!= -1){
replaceString = "GÉANT";
convString = convString.replaceAll("GEANT",replaceString);
}
if (convString.indexOf("Geant")!= -1){
replaceString = "GÉANT";
convString = convString.replaceAll("Geant",replaceString);
}
if (convString.indexOf("geant")!= -1){
replaceString = "GÉANT";
convString = convString.replaceAll("geant",replaceString);
}
if (convString.indexOf("GÉANT")!= -1){
replaceString = "GÉANT";
convString = convString.replaceAll("GÉANT",replaceString);
}
if (convString.indexOf("Géant")!= -1){
replaceString = "GÉANT";
convString = convString.replaceAll("Géant",replaceString);
}
return convString;
}
private String UnHashIt(String inputString){
String encodedValue = "";
try{
encodedValue = java.net.URLEncoder.encode(inputString, "iso-8859-1");
} catch (Exception e) {
//do something
}
return encodedValue;
}
private String HashIt(String inputString){
String decodedValue = "";
try{
decodedValue = java.net.URLDecoder.decode(inputString, "iso-8859-1");
} catch (Exception e) {
//do something
}
return decodedValue;
}
%>
我主要关注“编辑”按钮
请参见下面的示例,其中包含2个屏幕截图
2-“主标题”默认为“操作”,尽管以上屏幕截图中的条目为“未来计划”。我希望这个“主要标题”显示“未来计划”
答案 0 :(得分:1)
尝试一下:
替换:
<select name="mainHeading" id="mainHeading">
<option value="Operations">Operations</option>
<option value="Future Plans">Future Plans</option>
</select>
具有:
<select name="mainHeading" id="mainHeading">
<%if(mainHeading != null && mainHeading.equals("Future Plans")){%>
<option value="Future Plans">Future Plans</option>
<option value="Operations">Operations</option>
<%}%>
<%if(mainHeading != null && mainHeading.equals("Operations")){%>
<option value="Operations">Operations</option>
<option value="Future Plans">Future Plans</option>
<%}%>
<%if(mainHeading == null){%>
<option value="Operations">Operations</option>
<option value="Future Plans">Future Plans</option>
<%}%>
</select>
删除doDummy函数,您将不再需要它。 (还将其从onload body标签中删除)
编辑:
好的,解决方案是这样做(仅使用javascript):
<script>
//script at the bottom of the body to change select dropdown based on currently selected mainheading value.
//old method tried to use scriptlets mixed with javascript, but it's easier to do this with javascript.
const urlParams = new URLSearchParams(window.location.search);
const myParam = urlParams.get('mainHeading');
//if mainHeading parameter is null or equal to GÉANT Operations show GÉANT Operations dropdown
if(myParam === 'GÉANT Operations' || myParam === null) {
document.getElementById('mainHeading').value = 'GÉANT Operations';
}else{
document.getElementById('mainHeading').value = 'GÉANT Future Plans';
}
</script>