www.gusucode.com > 共享世纪内容管理系统 2.1 build 080704 全站开源版 > edit/Example/NewsSystem/modify.asp

    <!--#include file = "Startup.asp"-->

<%

' ======================
' 功能:修改新闻
' 描述:提供一个修改表单,包括新闻标题和新闻内容,新闻内容使用eWebEditor进行编辑;
'       同时接收上传文件,以便删除新闻时,同时删除上传文件;
'       并由编辑区中上传的文件,提供标题新闻的图片选择;
'		功能与新增相同,不同在于只是修改表单具有初始值。
' ======================

Call Header("修改新闻")
Call Content()
Call Footer()


' 本页内容区
Sub Content()
	
	' 传入参数:新闻ID
	Dim sNewsID
	sNewsID = Trim(Request("id"))

	' 新闻ID有效性验证,防止有些人恶意的破坏此演示程序
	If IsNumeric(sNewsID) = False Then
		GoError "请通过页面上的链接进行操作,不要试图破坏此演示系统。"
	End If

	' 从数据库中取初始值
	Dim sTitle, sContent, sPicture, sOriginalFileName, sSaveFileName, sSavePathFileName
	sSql = "SELECT * FROM NewsData WHERE D_ID=" & sNewsID
	oRs.Open sSql, oConn, 0, 1
	If Not oRs.Eof Then
		sTitle = oRs("D_Title")
		sContent = oRs("D_Content")
		sPicture = oRs("D_Picture")
		sOriginalFileName = oRs("D_OriginalFileName")
		sSaveFileName = oRs("D_SaveFileName")
		sSavePathFileName = oRs("D_SavePathFileName")
	Else
		GoError "无效的新闻ID,请点页面上的链接进行操作!"
	End If
	oRs.Close

	' 把带"|"的字符串转为数组,用于初始下拉框表单
	Dim aSavePathFileName
	aSavePathFileName = Split(sSavePathFileName, "|")

	' 根据新闻内容中相关上传文件为数据,初始下拉框表单
	' 函数InitSelect,根据数组值及初始值返回下拉框输出字串,具体请见startup.asp文件中函数的说明部分
	Dim sOptionSavePath
	sOptionSavePath = InitSelect("d_picture", aSavePathFileName, aSavePathFileName, sPicture, "", "无")

	%>

	<Script Language=JavaScript>
	// 当上传图片等文件时,往下拉框中填入图片路径,可根据实际需要更改此函数
	function doChange(objText, objDrop){
		if (!objDrop) return;
		var str = objText.value;
		var arr = str.split("|");
		var nIndex = objDrop.selectedIndex;
		objDrop.length=1;
		for (var i=0; i<arr.length; i++){
			objDrop.options[objDrop.length] = new Option(arr[i], arr[i]);
		}
		objDrop.selectedIndex = nIndex;
	}

	// 表单提交客户端检测
	function doCheck(){

		if (document.myform.d_title.value==""){
			alert("新闻标题不能为空!");
			return false;
		}
		// getHTML()为eWebEditor自带的接口函数,功能为取编辑区的内容
		if (eWebEditor1.getHTML()==""){
			alert("新闻内容不能为空!");
			return false;
		}

		// 表单有效性检测完后,自动上传远程文件
		// 函数:remoteUpload(strEventUploadAfter)
		// 参数:strEventUploadAfter ; 上传完后,触发的函数名,如果上传完后不需动作可不填参数
		eWebEditor1.remoteUpload("doSubmit()");
		return false;

	}

	// 表单提交(当远程上传完成后,触发此函数)
	function doSubmit(){
		document.myform.submit();
	}
	
	</Script>
	
	<form action="modifysave.asp?id=<%=sNewsID%>" method="post" name="myform" onsubmit="return doCheck();">
	<% '取源文件名 %>
	<input type=hidden name=d_originalfilename value="<%=sOriginalFileName%>">
	<% '取保存的方件名(带路径),如果不要带路径的填充下拉框,可以在下面的表单项加入onchange事件 %>
	<input type=hidden name=d_savefilename value="<%=sSaveFileName%>">
	<% '取保存的文件名,使用带路径的填充下拉框 %>
	<input type=hidden name=d_savepathfilename onchange="doChange(this,document.myform.d_picture)" value="<%=sSavePathFileName%>">

	<table cellspacing=3 align=center>
	<tr>
		<td>新闻标题:</td>
		<% ' 函数inHTML:去除Html格式,用于从数据库中取出值填入输入框时,具体请见startup.asp文件中函数的说明 %>
		<td><input type="text" name="d_title" value="<%=inHTML(sTitle)%>" size="90"></td>
	</tr>
	<tr>
		<td>标题图片:</td>
		<td><%=sOptionSavePath%> 当编辑区有插入图片时,将自动填充此下拉框</td>
	</tr>
	<tr>
		<td>新闻内容:</td>
		<td>
			<%
			' ewebeditor.asp文件调用的参数:
			'	id:下面表单项textarea的名称,在此表单中是d_content,注意大小写
			'	style:编辑器的样式名称,可在eWebEditor的后台设置
			'	originalfilename:用于获取源文件名的表单项名,在此表单中是d_originalfilename
			'	savefilename:用于获取保存文件名的表单项名,在此表单中是d_savefilename
			'	savepathfilename:用于获取保存带路径文件名的表单项名,在此表单中是d_savepathfilename

			' 请一定要用Server.HtmlEncode()函数对内容进行转换,否则将有可以出现某些内容出了编辑区的情况
			%>
			<textarea name="d_content" style="display:none"><%=Server.HtmlEncode(sContent)%></textarea>
			<iframe ID="eWebEditor1" src="../../ewebeditor.asp?id=d_content&style=s_newssystem&originalfilename=d_originalfilename&savefilename=d_savefilename&savepathfilename=d_savepathfilename" frameborder="0" scrolling="no" width="550" HEIGHT="350"></iframe>
		</td>
	</tr>
	</table>
	<p align=center><input type=submit name=btnSubmit value=" 提 交 "> <input type=reset name=btnReset value=" 重 填 "></p>
	</form>

	<%
End Sub

%>