<script type="text/javascript">
var upload1;
        var selectitem;//问题所在
        function modifyitem(){
         selectitem=document.getElementById("paths").value;
         alert(selectitem);
        }
        window.onload=function() {
        selectitem=document.getElementById("paths").value;
upload1 = new SWFUpload({
// Backend Settings
upload_url: "../servlet/AddDocServlet", // Relative to the SWF file (or you can use absolute paths)
post_params: {"SESSIONID" : "<%=session.getId()%>","SELECTITEM" : selectitem},//传递变量selectitem
.............................
} </script>
<form name="uploadform" method="post" action="servlet/AddDocServlet"
ENCTYPE="multipart/form-data">
上传位置:
<select id="paths" name="paths" onchange="modifyitem()">
<%=optionString %>
</select>
</form>
问题就在selectitem这个变量,先是在window.onload给selectitem付了一个初值,之后在下拉框给了一个onchange函数,改变selectitem的值,可问题是,alert先是selectitem是改变了,但是传到后台,selectitem的值始终不变,不知道要怎么改啊?
大家帮帮忙了。

解决方案 »

  1.   

    modifyitem()中需要改变SWFUpload(obj)中参数对象的值 obj.post_params.SELECTITEM = selectitem;
    SWFUpload是否提供了修改参数的方法?
      

  2.   

      var a=1; //selectitem
      var c;//"SELECTITEM"
      function aa(){alert(a)}
      function bb(){c=a;alert(c)}
      bb();//已经把selectitem得值付给了"SELECTITEM"
      aa();
      a=40;
      aa();//selectitem在每一次的change中变化,
      alert(c);//"SELECTITEM"不再变化
      

  3.   


    <%@ page contentType="text/html;charset=UTF-8" %>
    <%@ include file="/commons/taglibs.jsp" %>
    <%@page import="com.star21.mediaResource.*" %>
    <html>
    <head>
    <%@ include file="/commons/meta.jsp" %>
    <link href="${ctx}/widgets/extremecomponents/extremecomponents.css" type="text/css" rel="stylesheet">
    <title>上传图片</title>
    <!-- 以下为JS包含路径 -->
    <script type="text/javascript">

    //保存图片信息
    function save(){

            
        if(document.getElementById("chntitle").value == ""){
            alert("中文标题不能为空!");
            return false;
        }
        if( document.getElementById("chntitle").value.length > 15 ){
         alert( "中文标题不能超过15位!" );
         return false;
        }
    document.fileForm.action = "${ctx}/MediaManager.do?method=fileSave"; 
    doOnload(true);
    document.fileForm.submit();

    }

    //去空格
    function elementTrim(element){
      if(element){
      element.value = element.value.replace( /^\s*/, "");
      element.value = element.value.replace( /\s*$/, "");
      }
     }
    </script>
    </head>
    <body align="center">
    <br>
    <%@ include file="/commons/messages.jsp" %>
    <%@ include file="/commons/std-tag/shortForContext/pages/context.jsp" %>
    <form action="" name="fileForm" method="post" enctype="multipart/form-data">
       <table align="center" class="table_width_form" border="0" cellpadding="0" cellspacing="0">
        <tr>
     <td class="td_title_l"></td>
     <td class="td_title">本地上传</td>
     <td class="td_title_r"></td>
        </tr>
      </table> 
       <TABLE align="center" class="table_width_form" border="1" cellpadding="0" cellspacing="0" style="border-collapse:collapse;" bordercolor="#9999FF">
    <tr>
    <td class="td04" align="left" >&nbsp;中文名称:&nbsp;&nbsp;</td>
    <td colspan="3">&nbsp;<input type="text" id="chntitle" name="chntitle" value="" maxlength="500" onblur="elementTrim(this)"/><span style="color:red">*</span>&nbsp;</td>
    </tr>
    <tr>
    <td class="td04" align="left" >&nbsp;英文名称:&nbsp;&nbsp;</td>
    <td colspan="3">&nbsp;<input type="text" name="engtitle" value="" maxlength="500"/>&nbsp;</td>
    </tr>
    <tr>
    <td class="td04" align="left" >&nbsp;关键字:&nbsp;&nbsp;</td>
    <td colspan="3">&nbsp;<input type="text" name="keywords" value="" maxlength="500"/><span style="color:red">关键字请用逗号分隔</span>&nbsp;</td>
    </tr>
    <tr>
    <td class="td04" align="left" >&nbsp;文件类型:&nbsp;&nbsp;</td>
    <td colspan="3">&nbsp;<select name="mediaformtypeid" id="mediaformtypeid" style="width=150px">
        <c:forEach var="obj" items="${formTypeList}">
          <option value="<c:out value='${obj.mft_id}'/>"
          <c:if test="${obj.mft_id == default}"><c:out value="selected"/></c:if>>
          <c:out value='${obj.name}' /></option>
       </c:forEach>
         </select>&nbsp;
              </td>
    </tr>

      </table>
      <TABLE align="center" class="table_width_form" border="1" cellpadding="0" cellspacing="0" style="border-collapse:collapse;" bordercolor="#9999FF">
    <tr >
    <td class="td06" colspan="4" align="center">
    <input type="button" value="下一步" onclick="save()" class="button_ok"/>
    </td>
    </tr>
      </table>
     </form>
     <script type="text/javascript" src="${ctx}/js/validator.jsp"></script>
    <%@ include file="/commons/loading.jsp" %>
    <%@ include file="/commons/footer.jsp" %>
    </body>
    </html>
    这是我以前做的一个上传页面,可能对你会有所帮助!
      

  4.   

    我用firebug调试,应该写成obj.setting.post_params.SELECTITEM = selectitem;之后改变select框,firebug里看值也变化了,但是到后台值始终未变,奇怪了啊……
      

  5.   

    不太明白你为什么要在onload时执行'upload1 = new SWFUpload('.... 这个操作哦
    onChage时selectitem会被覆盖新值,但是你并没有在这个onchang方法中执行'upload1 = new SWFUpload('.... 这个操作呀?个人意见哈 ~ 不知我对你目前遇到的问题在理解上是不是有偏差
      

  6.   


    谢谢,不过光界面对我没用啊,我想用SWFUpload组件的,这样效果比较好,但现在碰到个问题...