后端开发|php教程
php 为什么我ajax返回值为1 为什么前台接收alert(data)显示的确实整个网页页面的html代码
后端开发-php教程
php 为什么我ajax返回值为1 为什么前台接收alert(data)显示的确实整个网页页面的html代码(我使用了smarty 也返回的值 页面也是在smarty模板里面)
弹幕网 源码,ubuntu怎么显示行号,爬虫八抓鱼,大商创首页显示是哪个php文件,海外建站seolzw
亲子门户源码,ubuntu取消选中状态,看动画学会爬虫,zaixian php,最简单seolzw
拦截码源码怎么使用,vscode双击匹配,ubuntu修改中文命令,tomcat 默认端口,如何建立sqlite,pc端日期插件,shopxo前端是什么框架,同态反爬虫,php 问题,网站seo问题,快递手机网站模板下载安装,网页源代码看时间,电商项目后台模板,情人节html页面特效,项目管理系统代码,内容付费网站程序lzw
回复讨论(解决方案)
在php输出1后面加上exit;就可以了
还是不可以!求指导
那是你对 ajax 请求也做了全程处理
通常只要做业务逻辑即可
可以说的更具体点吗?
要看到 admin.php 的代码
class adminController{
public function __construct(){
session_start();
if(!(isset($_SESSION[‘username’]))&&(PC::$method!=’login’)&&(!$_COOKIE[‘username’])){
$this->showmessage(‘请登录后在操作!’, ‘admin.php?controller=admin&method=login’);
}else{
$this->auth = isset($_SESSION[‘username’])?$_SESSION[‘auth’]:array();
}
}
public function login(){
if (!isset($_POST[‘submit’])){
VIEW::display(‘admin/login.html’);
}else {
$this->checklogin();
}
}
public function checklogin(){
$username = daddslashes($_POST[‘username’]);
$password = md5(daddslashes($_POST[‘password’]));
$auth=M(‘admin’)->findOne_by_username($username);
if((!empty($auth))&&$auth[‘password’]==$password){
$_SESSION[‘username’]=$username;
//setcookie(‘username’,$username,time()+3600*12);
echo 1;
exit;
//echo “window.location.href=’admin.php?controller=admin&method=adminlist”;
}elseif (empty($auth)){
echo “用户不存在”;
exit;
//$this->showmessage(“用户不存在”,’admin.php?controller=admin&method=login’ );
}elseif ((!empty($auth))&&$auth[‘password’]!=$password){
echo “密码错误”;
//$this->showmessage(“密码错误”,’admin.php?controller=admin&method=login’);;//密码错误
}
}
admin.php是入口文件
<?php
header(“Content-type: text/html; charset=utf-8”);
//url形式 index.php?controller=控制器名&method=方法名
require_once(‘config.php’);
require_once(‘framework/pc.php’);
PC::run($config);
你在使用某个框架,那么这个框架应该有一个 ajax 模式
通常框架会完成完整的流程,从而输出页面 html
但是 ajax 一般是不需要输出页面的,所以应开启 ajax 模式,以使工作流程发生改变
不 这是我自己写的一套一个简易的微型框架
在设定的时候 我没有写任何关于ajax的
然后我把mvc的视图层中引入了smarty模板引擎
自己写的,就得补上
ajax 和 普通页面 的输出方式不同,统一处理自然就是有毛病的
如果用ajax请求,那么加上一个参数告诉入口程序admin.php,不要加载模板。
这里,
$.ajax({
url:’admin.php?controller=admin&method=login’,
…
});
没有提交 $_POST[‘submit’])
admin控制器里面的
public function login(){if (!isset($_POST[submit])){VIEW::display(admin/login.html);}else {$this->checklogin();}}
方法
则执行 VIEW::display(‘admin/login.html’);
所以,模板加载了。
建议用firefox的firebug或者chrome核心浏览器的开发者工具的newwork,提交一下,看下有没有提交过去submit这个参数。
或者检查一下form1里面有没有name是submit的值
谢谢 我试试看啊 说不定还得请教你
这是我用firebug弄的
响应啊 submit也都有
写日志一步步跟踪看看。
要保证echo 1之后再没有任何形式的文本输出,然后把对应页面的php结束符号 ?> 去掉
直接把ajax访问地址及参数放浏览器执行看看就知道了,在一步一步调试
ajaxReturn
可以说的更具体点吗?
我也遇到了一样的问题,该怎么解决啊