问个问题,有关于prototype执行script

Cervisia 2008-04-11 09:31:41
登录页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>捷绅眼镜厂后台登录</title>
<style type="text/css">
<!--
body {
background-color: #336699;
}
.STYLE1 {color: #FFFFFF}
-->
</style>
<link href="../images/css.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body,td,th {
color: #ffffff;
}
.STYLE2 {color: #000000}
-->
</style>
<script language="javascript" src="../ajax/ajax.js"></script>
<script language="javascript" src="../ajax/script.js"></script>
</head>
<body>
<script language="javascript">
function getHTML()
{
var url = 'function/get_dept_name.php';
var pars = '';



var myAjax = new Ajax.Updater(
{success: 'dept'},
url,
{
method: 'get',
parameters: pars,
onFailure: reportError
});

}
function reportError(request)
{
alert('Sorry. There was an error.');
}
</script>

<SCRIPT language=JavaScript>
<!--
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a && i<a.length && (x=a[i]) && x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0 && parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n]) && d.all) x=d.all[n]; for (i=0;!x && i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x && d.layers && i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</SCRIPT>



<SCRIPT language=JavaScript>
function goto(url)
{
alert(url);
//location.href=url;
}
</SCRIPT>

<DIV id=Layer1

style="BORDER-RIGHT: #000000 1px; BORDER-TOP: #000000 1px; Z-INDEX: 1; LEFT: 277px; BORDER-LEFT: #000000 1px; WIDTH:505px; BORDER-BOTTOM: #000000 1px; POSITION: absolute; TOP: 36px;layer-background-image: url(../images/index1/drag-bk.gif)" onclick="MM_dragLayer('Layer1','',0,0,0,0,true,false,-1,-1,-1,-1,false,false,0,'',false,'')">

<form action="function/login.php" method="post" name="login" id="login">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="287">
<tr>
<td width="100%" colspan="2" valign="top" background="../images/logon.jpg" bgcolor="#EFEBDE">
<table width="100%" height=85% border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="72" colspan="2"> </td>
<td colspan="2"> </td>
</tr>
<tr>
<td width="7%" height="182"> </td>
<td width="45%"><table width="100%" height="100" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="35%" height="35" align="center"><span class="STYLE1">部 门:</span></td>
<td colspan="2">
<select name="dept" id="dept">
</select>
</td>
</tr>
<tr>
<td height="35" align="center"><span class="STYLE1">姓 名:</span></td>
<td colspan="2"><input name="usr" type="text" id="usr" size="15" /></td>
</tr>
<tr>
<td height="35" align="center"><span class="STYLE1">密 码:</span></td>
<td colspan="2"><input name="pass" type="password" id="pass" size="15" /></td>
</tr>
<tr>
<td height="35" align="center"><span class="STYLE1">验证码:</span></td>
<td width="26%"><input name="chkcode" type="text" id="chkcode" size="8" /></td>
<td width="39%"><img src="../function/checkcode.php" /></td>
</tr>
<tr>
<td height="35" colspan="3" align="center">
<input type="button" name="submit" id="submit" value="登录" onClick="javascript:chkfrom(this.form);" />
<input type="reset" name="reset" id="reset" value="重置" /></td>
</tr>
</table></td>
<td width="42%" valign="top"><span style="color:#000000">  说明:此界面为后台管理登录界面,只允许具有权限的内部员工进行登录操作!</span>
<Br />
<br />
<div class="errmsg" id="info" style="height:60"></div> </td>
<td width="6%"> </td>
</tr>
<tr>
<td colspan="2"> </td>
<td colspan="2"> </td>
</tr>
</table></td>
</tr>
</table>
</form>
</DIV>
<script language="javascript">getHTML();</script>
</body>
</html>


验证页面:

<?php
session_start();
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><style type="text/css">
<!--
body {
margin-top: 0px;
margin-bottom: 0px;
}
-->
</style></head>
<?php
include("../config/config.php");
/* 定义用户名和密码验证函数 */
function checkUP($user,$pas,$deptname)
{
/*------转换编--------码*/
$user=convert2gbk($user);
$pas=convert2gbk($pas);
$deptname=convert2gbk($deptname);
/*------转换结束--------*/
/*------SQL语句--------*/
$sql="exec sp_check_login '$deptname','$user','$pas'";
$result=mssql_query($sql);
$row = mssql_fetch_array($result);
if (convert2utf8($row[0])=='0')
{
return false;
}
else
{
return true;
}
}
if ($dept!='0')
{
if ($_SESSION['authnum']==$chkcode)
{
if (checkUP($usr,md5($pass),$dept))
{
//echo '用户名和密码正确!进入后台系统开始!';
/*---------------把用户名加入Session--------------*/
$_SESSION['usr']=$usr;
/*---------------转向到后台页面-------------------*/
echo "<script>goto('default.html');</script>";
}
else
{
echo '用户名或密码出错请重试!';
}
}
else
{
echo "警告:错误的验证码!";
}
}
else
{
echo "警告:请选择所属的部门!";
}

?>
</html>

故障:
成功验证后,prototype不能执行goto函数。请问为什么?
...全文
73 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
剑心永远OK 2008-04-11
  • 打赏
  • 举报
回复
看不见你的prototype调用goto的代码
Cervisia 2008-04-11
  • 打赏
  • 举报
回复
是的。
剑心永远OK 2008-04-11
  • 打赏
  • 举报
回复
你的意思是不用ajax调用就可以,用了就不可以?
Cervisia 2008-04-11
  • 打赏
  • 举报
回复
但通过Ajax就不能转向啦。
Cervisia 2008-04-11
  • 打赏
  • 举报
回复
直接输出是没有问题的。
剑心永远OK 2008-04-11
  • 打赏
  • 举报
回复
try:

echo "<script>goto('default.html');</script>";
-----------------------------------------------
echo "<script language=javascript>goto('default.html');</script>";
unlive 2008-04-11
  • 打赏
  • 举报
回复
你看看页面输出来的是什么?
确定是<script>goto('default.html');</script>?
这个简写成这样没问题么?
或者可以用
<script language="javascript">goto('default.html');</script>
试试。
Cervisia 2008-04-11
  • 打赏
  • 举报
回复
这是script.js脚本主要加载login.php

// JavaScript Document
function chkfrom(obj){
$("info").innerHTML='';
var opt = {
method: 'post',
evalScripts:true,
onSuccess: function(t) {
$("info").innerHTML=t.responseText
},
on404: function(t) {
$("info").innerHTML='错误:找不到提交页!';
},
onFailure: function(t) {
$("info").innerHTML='错误:' + t.status + ' -- ' + t.statusText;
},
asynchronous:true

}
//alert($(obj).action+"?"+getRequestBody(obj));
var ajax=new Ajax.Request($(obj).action+"?"+getRequestBody(obj), opt);
}
function getRequestBody(oForm) {
var aParams = new Array();
for (var i=0 ; i < oForm.elements.length; i++) {
var sParam = encodeURIComponent(oForm.elements[i].name);
sParam += "=";
sParam += encodeURIComponent(oForm.elements[i].value);
aParams.push(sParam);
}
return aParams.join("&");
}

Cervisia 2008-04-11
  • 打赏
  • 举报
回复
看了prototype的关于request和updater的源代码发现:
request不支持evalScripts选项。
var ajax=new Ajax.Request($(obj).action+"?"+getRequestBody(obj), opt);
改为:
var ajax=new Ajax.Updater('info',$(obj).action+"?"+getRequestBody(obj),opt);

Cervisia 2008-04-11
  • 打赏
  • 举报
回复
就是把goto改成alert也是一样呀。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧