调用 Ajax.call 方法后无法进入到 user.php程序中

2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家



问题描述: 今天我想将登陆功能利用ajax修改,但是碰到一个问题,一直无法解决,大家帮帮忙
1.我自己书写了一个页面 login.dwt 里面的表单是这样的
  1. <form name="formLogin"action="javascript:ego_login();" method="get">
复制代码

2.我在 user.js里面的方法如下。
  1. function ego_login()
  2. {
  3. var frm = document.forms['formLogin'];
  4. if (frm)
  5. {
  6. var username = frm.elements['loginname'].value;
  7. var password = frm.elements['loginpwd'].value;
  8. }
  9. if ( username == '' )
  10. {
  11. document.getElementById('loginname_error').innerHTML = "请输入用户名";
  12. document.getElementById('loginname_error').className = "null";
  13. }
  14. if ( password == '' )
  15. {
  16. document.getElementById('loginpwd_error').innerHTML = "请输入密码";
  17. document.getElementById('loginpwd_error').className = "null";
  18. }
  19. if(username!=''&&password!=''){
  20. Ajax.call( 'user.php?act=ego_login', 'username=' + username + '&password='+ password, login_callback , 'GET', 'TEXT', true, true );
  21. }
  22. }

  23. /*检查登录的回调函数*/
  24. function login_callback(result)
  25. {
  26. if ( result == "true" )
  27. {
  28. document.getElementById('loginname_error').innerHTML = "可以使用 您输入的账户名和密码不匹配,请重新输入 ";
  29. document.forms['formUser'].elements['Submit'].disabled = '';
  30. }
  31. if ( result == "false" )
  32. {
  33. alert('3333');
  34. document.forms['formLogin'].elements['Submit'].disabled = 'disabled';
  35. }
  36. }
复制代码

3.我在user.php里面的方法如下
  1. elseif ($action == 'ego_login')
  2. {
  3. var_dump(123);
  4. }
复制代码




现在我的问题是:调用Ajax.call( 'user.php?act=ego_login', 'username=' + username + '&password='+ password, login_callback , 'GET', 'TEXT', true, true );
这个方法后,程序根本无法进入到user.php 的 elseif ($action == 'ego_login'){ } 这个代码块里面。我尝试用 var_dump()来输出一些东西也没有反映。
但是可以肯定的是我点击提交按钮之后,程序是进入到了 user.js里面的,因为我试了一下 ,在调用ajax.call方法之前 是可以alert()出东西的

然后我用 firebug 查看了提交表单这个请求,发现用户名和密码是可以得到的 ,但是参数后面却多了一串数字。如下图所示




我不知道这个数字是怎么来的。
大家有遇到过吗? 为什么调用ajax.call之后 无法进入到user.php中呢?我在网上也搜索了ecshop中如何使用ajax,很多人提供的步骤和我的也都一样,是我哪里没注意到吗?大家帮忙看下,谢谢!

回答:
user.php最开始的地方,有需要把这个act加入到ajax那个验证数组里,就可以了。安全问题,明了没

这个是正常的。没关系。 。 看下PHP是否有问题

是我大意了,js里面的 function login_callback(result) 这个方法中if 后应该接着是 else if 。