分享

写回答

发帖

[提问] 请教:在本地没有问题,上传服务器却运行不了

GoDaddy GoDaddy 5988 人阅读 | 24 人回复

发表于 2010-8-31 09:32:11 | 显示全部楼层 |阅读模式

我本地用的是XP的虚拟机,用的是asp+access开发的程序,在我本地跑得没有任何问题

但我上传到godaddy空间后,却老是出问题.主要有以下两个方面:

1、一个页面中有一部分是选择年月日的,在本地上,只要选择了年后,月日自动变成可选。
但在服务器上选择年后,月可以选择,但日却不能选。
相关源码如下:
<SELECT style="color:#333333;WIDTH: 50px" onchange=MyMonthOnchange(); name=dropMyMonth>
                                <OPTION value=-1 selected>月</OPTION> <OPTION
                                value=1>1</OPTION> <OPTION value=2>2</OPTION>
                                <OPTION value=3>3</OPTION> <OPTION
                                value=4>4</OPTION> <OPTION value=5>5</OPTION>
                                <OPTION value=6>6</OPTION> <OPTION
                                value=7>7</OPTION> <OPTION value=8>8</OPTION>
              <OPTION value=9>9</OPTION> <OPTION
                                value=10>10</OPTION> <OPTION
                                value=11>11</OPTION> <OPTION
                              value=12>12</OPTION></SELECT>
              <SELECT  style="color:#333333;WIDTH: 50px" name=dropMyDay> <OPTION
                                value=-1 selected>日</OPTION></SELECT></td>
            </tr>

其中涉及到一个JS文件,源码:
function MyYearOnchanged(){
        var myyear = document.getElementById("dropMyYear");
        var mymonth = document.getElementById("dropMyMonth");
        var myday = document.getElementById("dropMyDay");

        if(myyear.value == "-1"){
                mymonth.disabled = true;
                myday.disabled = true;
        }
        else{
                //初始化dropMyMonth
                mymonth.disabled = false;
                myday.disabled = false;
                mymonth.options[0].selected = true;
                //初始化dropMyDay
                myday.length = 0;
                var myoption = new Option("选择...","-1");
                myday.add(myoption);
        }
}

function MyMonthOnchange(){
        var bigMonths = getBigMonth();
        var smallMonths = getSmallMonth();
        var month = document.getElementById("dropMyMonth");
        var isGone = true;

        //初始化dropMyDay为31天
        if(isGone){
                for(var i=0; i<bigMonths.length; i++){
                        if(month.value.toString() == bigMonths.toString()){
                                initDayDrop("big",false);
                                isGone = false;
                                break;
                        }
                }
        }

        //初始化dropMyDay为30天
        if(isGone){
                for(var i=0; i<smallMonths.length; i++){
                        if(month.value.toString() == smallMonths.toString()){
                                initDayDrop("small",false);
                                isGone = false;
                                break;
                        }
                }
        }
       
        //初始化dropMyDay为28天或29天
        if(isGone){
                initDayDrop("flat",true);
        }

        var myday = document.getElementById("dropMyDay");
        myday.options[0].selected = true;
}

//初始化dropMyDay,根据月份判断天数
function initDayDrop(monthType, isBigYear){
        var dayArray = new Array();

        if(isBigYear){
                dayArray = getflatDay()
        }
        else{
                if(monthType == "big"){
                        dayArray = getBigDay();
                }
                else{
                        dayArray = getSmallDay();
                }
        }

        loadDropDays(dayArray);
}

//返回天数为31天的大月份
function getBigMonth(){
        var bigMonths = new Array();
        bigMonths[0] = "1";
        bigMonths[1] = "3";
        bigMonths[2] = "5";
        bigMonths[3] = "7";
        bigMonths[4] = "8";
        bigMonths[5] = "10";
        bigMonths[6] = "12";

        return bigMonths;
}

//返回天数为30天的小月份
function getSmallMonth(){
        var smallMonths = new Array();
        smallMonths[0] = "4";
        smallMonths[1] = "6";
        smallMonths[2] = "9";
        smallMonths[3] = "11";

        return smallMonths;
}

//返回2月平月的天数
function getflatDay(){
        var year = getYear();
        var flatDays = new Array();
        //year如果能被4除尽,返回29天的dropMyDays
        if((year%4) == 0){
                for(var i=0; i<29; i++){
                        flatDays = i+1;
                }
        }
        //year如果不能被4除尽,返回28天的dropMyDays
        else{
                for(var i=0; i<28; i++){
                        flatDays = i+1;
                }
        }

        return flatDays;
}

//返回31天
function getBigDay(){
        var bigDays = new Array();
        for(var i=0; i<31; i++){
                bigDays = i+1;
        }

        return bigDays;
}

//返回30天
function getSmallDay(){
        var smallDays = new Array();
        for(var i=0; i<30; i++){
                smallDays = i+1;
        }

        return smallDays;
}

//返回dropMyYear中的年
function getYear(){
        var year = document.getElementById("dropMyYear");
        var selectedyear = year.value;
        return selectedyear;
}

//将返回的数组装载到dropMyDays
function loadDropDays(dayarray){
        var dropday = document.getElementById("dropMyDay");
       
        dropday.length = 1;

        //alert(dayarray.length);
        for(var i=0; i<dayarray.length; i++){
                var myoption = new Option(dayarray, dayarray);
                dropday.add(myoption);
        }
}

回答|共 24 个

chgl123

发表于 2010-8-31 09:33:49 | 显示全部楼层

向各位高手,前辈请教

第二个问题是:在服务器上有些页面经常报该页无法显示,但在本地却不存在此问题

add.c

发表于 2010-8-31 09:43:28 | 显示全部楼层

程序方面不懂, 没法帮你
英文报错 原文是什么?

chgl123

发表于 2010-8-31 10:01:50 | 显示全部楼层

程序上没有报错.
只是不能选择,
排版本也变了,我把两张图贴出来

[ 本帖最后由 chgl123 于 2010-8-31 10:02 AM 编辑 ]

这是有问题的

这是有问题的

这是我本地正常的

这是我本地正常的

chgl123

发表于 2010-8-31 10:04:39 | 显示全部楼层

同样的源码,只是在不用的地方运行

结果不一样,搞不明白,排版变了也就算了,连程序运行的地方也有问题.

会不会是因为服务器的IIS版本太高,运行JS的东西有问题呢,要如何配置

add.c

发表于 2010-8-31 10:18:38 | 显示全部楼层

回复 5# 的帖子

你用的iis 7? , 管道模式改为classic试试, 参考GoDaddy主机iis相关设置教程

酥油茶

发表于 2010-8-31 10:36:02 | 显示全部楼层

原帖由 add.c 于 2010-8-31 10:18 AM 发表
你用的iis 7? , 管道模式改为classic试试, 参考GoDaddy主机iis相关设置教程


我经常碰到这些问题,多试几次就OK啦。

chgl123

发表于 2010-8-31 10:38:06 | 显示全部楼层

我已经改成II7和classic了

结果还是不行的.

楼上说的多试几次,如何试??

niuniu

发表于 2010-8-31 12:04:16 | 显示全部楼层

LZ  的程序有点小问题

你的html中, 使用了  name=..., 但是你下面的 js 代码中 用的却是 document.getElementById  函数,  你要统一, 要么 html中使用 id 做标签, 要么 js 的代码中用 document.getElementsByName 函数

比如
html 代码:
<h1 id="myHeader" onclick="getValue()">This is a header</h1>

js代码:
<script type="text/javascript">
function getValue()
  {
  var x=document.getElementById("myHeader")
  alert(x.innerHTML)
  }
</script>

[ 本帖最后由 niuniu 于 2010-8-31 12:06 PM 编辑 ]

niuniu

发表于 2010-8-31 12:08:36 | 显示全部楼层

建议用 getElementsByName 函数, 因为我不清楚你的 html 文件里其他地方是否用了 name 标记

评分

参与人数 1金币 +3 收起 理由
add.c + 3 助人为乐

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则