谁可以帮我解释下 为什么php没有返回值啊 本帖最后由 danhanjun 于 2010-12-11 18:38:03 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用firefox 装下 firebug 可以看返回的内容。调试还得自己慢慢来。 数据提交前后都要进行验证。比如 $_POST['pass'] 或 $_POST['accout'] 如果有空的,就应该 echo "fail" 而不是查询数据库然后什么都不显示。查询无数据也要 echo "fail";sql 语句后可以加个 limit 1 你的FORM(<form id="form" class="form">)似乎没有写表单提交的方式(GET / POST)和动作页面吧 <!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" /><link href="static/style.css" rel="stylesheet" type="text/css" /><script type="text/javascript" src="./includes/jquery.js"></script><script type="text/javascript" src="./includes/action.js"></script><title></title></head><body>{!--include file="head.htm"--}<div id="center_body" class="center_body" ><div class="login_aconut" id="login_aconut" ><div class="login_bg" id="login_bg">测试登陆地址</div><form id="form" class="form"><br />帐号:<input type="text" name="aconut" id="acount" /><br /><br />密码:<input type="password" name="pass" id="pass"/> <a href="">忘记密码?</a><br /><div id="input_b" class="input_b"><input type="submit" name="submit" value="登录" id="submit"/></div></form></div></div>{!--include file="footer.htm"--}</body></html> $(document).ready(function(){ $("#form").submit(function() alert('111'); login(); return false; });});function login() {var acount = $("#acount").val();var pass = $("#pass").val();if (acount == "") { $("#confirm").text("请输入登录用户名"); $("#acount").focus(); return false;}if(pass == "") { $("#confirm").text("请输入登录密码"); $("#pass").focus(); return false;}$.ajax({ type: "POST", url: "index.php", data: "acount=" + acount + "&pass=" + pass, success: function(msg){ alert('数据提交成功'); if(msg == "success"){ alert(msg); $("#form").html("<div class=\"form1\">登录成功,欢迎" + acount + "!</div>"); }else { $("#confirm").text("没有此用户或者密码不正确!"); } }});} <?php define('MEIYUAN',FALSE);include('libs/init.php');$smarty->display('index.htm');//echo $row['name'];include 'configs/config.php';require 'includes/db.php';$username=isset($_POST['acount']) ? $_POST['acount']:'';$pass=isset($_POST['pass']) ? $_POST['pass']:'';$sql = "select * from my_admin where name='".$username."'and pass='".$pass."'";$rs = mysql_query($sql);while( $row = mysql_fetch_array($rs)){ echo 'success'; }?> action.js文件$(document).ready(function(){ $("#form").submit(function() //这里少了一个 { alert('111'); login(); return false; });}); 难道你不看错误控制台吗?$(document).ready(function(){ $("#form").submit(function() //这里少了一个 { alert('111'); login(); return false; });}); 是firefox 是错误控制台 Ctrl+Shift+J js 中 accont 和 pass 不是全局变量。在$.ajax 中可能不认。 有两个地方不对。action.js$(document).ready(function(){ $("#form").submit(function(){ //这里原来少了个 { alert('111'); login(); return false; });});function login() { var acount = $("#acount").val(); var pass = $("#pass").val(); if (acount == "") { $("#confirm").text("请输入登录用户名"); $("#acount").focus(); return false; } if(pass == "") { $("#confirm").text("请输入登录密码"); $("#pass").focus(); return false; } $.ajax({ type: "POST", url: "action.php", data: "acount=" + acount + "&pass=" + pass, success: function(msg){ alert('数据提交成功'); if(msg == "success"){ alert(msg); //下面原来是 #form1 应该是 #form 吧 $("#form").html("<div class=\"form1\">登录成功,欢迎" + acount + "!</div>"); }else { $("#confirm").text("没有此用户或者密码不正确!"); } } });} 那里不是有个form吗 我直接替换掉了 这样登录的时候那个form就会不见 直接显示 谁谁谁登录 最开始你给的是 #form1 哥们儿测试用的文件html:<html><head><script type="text/javascript" src="/css/jquery.min.js"></script><script type="text/javascript" src="action.js"></script></head><body><div id="confirm"></div><form id="form" class="form"><br />帐号:<input type="text" name="aconut" id="acount" /><br /><br />密码:<input type="password" name="pass" id="pass"/> <a href="">忘记密码?</a><br /><div id="input_b" class="input_b"><input type="submit" name="submit" value="登录" id="submit"/></div></form></body></html> action.php<?phpecho "success";?> 哈哈 搞定 搞定 hoho 三天哇 就这个 纠结我 你调程序的思路错了吧。首先你要先判断下是不是后端有问题。即php部分。1、echo $username 和$pass,看看他们的值到底有没有错。2、echo $sql,将打出的sql语句放入phpmyadmin或者其他sql工具里面执行下,看看有没有返回值,如果没有查到结果,证明你的sql语句错了。至于错哪里了,自己好好去查。看看到底是条件没给对,还是sql语法出错。如果以上几点都没有问题,那80%是前端出错了。这里是PHP板块,有关前端的问题可以去 web HTML或者其他几个前端平台咨询 为虾米我打印msg 他打印的是html源代码 包含success 他输出的是html文件。你输出的是 txt内容。这个在PHP中控制。alert() 不认html的。 打的是什么内容,帖出来。有的web系统会自动加 html 标签。就是输出时不让加html标签就可以了所以一般都用 json 做返回格式。 他打印的是整个html 也就是不会等于success$.ajax({ type: "POST", url: "index.php", data: "acount=" + acount + "&pass=" + pass, success: function(msg){ alert(msg); if(msg == "success"){ $("#form").html("<div class=\"form1\">登录成功,欢迎" + acount + "!</div>"); }else { $("#confirm").text("没有此用户或者密码不正确!"); } }});} 整个html的内容,到底加了什么标签?你怎么又提交到 index.php了??? index.php 可能使用了框架等。在 echo "success"; 前不知道输出了多少内容呢。输出的内容不好控制啊 单独写一个 php 文件,不要提交到 index.php,index.php要处理的事太多了,就不要麻烦他了。不要引入框架,模板什么的。要不你的返回值就太乱了。 直接 用$.get(url,param,callback);echo '';exit;就可以了! echo $sql 能打印 就是一直返回为空<?php include 'configs/config.php';require_once 'db.php';if (isset($_POST['action'])=='login'){ $username=isset($_POST['acount']) ? $_POST['acount']:'';$pass=isset($_POST['pass']) ? $_POST['pass']:'';$sql = "select * from my_admin where name='".$username."' and pass='".$pass."'";$rs = mysql_query($sql);while ($row=mysql_fetch_array($rs)){ echo "success";//if ($row != 0){echo 'success'; } //return 'success'; }} $(document).ready(function(){ $("#form").submit(function(){ login(); return false; });});function login() {var acount = $("#acount").val();var pass = $("#pass").val();if (acount == "") { $("#confirm").text("请输入登录用户名"); $("#acount").focus(); return false;}if(pass == "") { $("#confirm").text("请输入登录密码"); $("#pass").focus(); return false;}$.ajax({ type: "POST", url: "includes/action.php", data: "acount=" + acount + "&pass=" + pass+"&action=login", success: function(msg){ alert(msg); if(msg == "success"){ $("#form").html("<div class=\"form1\">登录成功,欢迎" + acount + "!</div>"); }else { $("#confirm").text("没有此用户或者密码不正确!"); } }});} [code=HTML][<!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" /><link href="static/style.css" rel="stylesheet" type="text/css" /><script type="text/javascript" src="./includes/jquery/jquery.js"></script><script type="text/javascript" src="./includes/jquery/action.js"></script><title></title></head><body>{!--include file="head.htm"--}<div id="center_body" class="center_body" ><div class="login_aconut" id="login_aconut" ><div class="login_bg" id="login_bg">测试登陆地址</div><form id="form" class="form"><br />帐号:<input type="text" name="aconut" id="acount" /><br /><div id="confirm" class="confirm"><br /></div>密码:<input type="password" name="pass" id="pass"/> <a href="">忘记密码?</a><br /><div id="input_b" class="input_b"><input type="submit" name="submit" value="登录" id="submit"/></div></form></div></div>{!--include file="footer.htm"--}</body></html>/code] $sql = "select * from my_admin where name='".$username."' and pass='".$pass."';";sql 字串最后跟个 ; 号 谁会在织梦系统中使用jquery的thickbox插件。。 请问怎么知道一个对象有哪些属性方法? ASP与PHP并行配置!!!!!!! php创建xml并格式化输出 求助,类似下面的网页怎么做出来的,与微博同步,是php吗? MYSQL的表主键和唯一有什么区别? 关于class中变量返回值问题 我想自己做一个wap网站,服务器放在家里,请问我是不是设置一下MIME,手机就可以访问了? 求救!vbb的问题 一个类的私有方法为什么能被另一个类调用 PHP数组元素的分类、统计和排序,好难好难。。。 使用smarty进行整体控制问题
调试还得自己慢慢来。
比如 $_POST['pass'] 或 $_POST['accout'] 如果有空的,就应该 echo "fail" 而不是查询数据库然后什么都不显示。
查询无数据也要 echo "fail";
sql 语句后可以加个 limit 1
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="static/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="./includes/jquery.js"></script>
<script type="text/javascript" src="./includes/action.js"></script>
<title></title>
</head>
<body>
{!--include file="head.htm"--}
<div id="center_body" class="center_body" >
<div class="login_aconut" id="login_aconut" >
<div class="login_bg" id="login_bg">测试登陆地址</div>
<form id="form" class="form">
<br />
帐号:<input type="text" name="aconut" id="acount" /><br /><br />
密码:<input type="password" name="pass" id="pass"/> <a href="">忘记密码?</a><br />
<div id="input_b" class="input_b">
<input type="submit" name="submit" value="登录" id="submit"/></div>
</form>
</div>
</div>{!--include file="footer.htm"--}
</body></html>
$("#form").submit(function()
alert('111');
login();
return false;
});
});
function login() {
var acount = $("#acount").val();
var pass = $("#pass").val();
if (acount == "") {
$("#confirm").text("请输入登录用户名");
$("#acount").focus();
return false;
}
if(pass == "") {
$("#confirm").text("请输入登录密码");
$("#pass").focus();
return false;
}
$.ajax({
type: "POST",
url: "index.php",
data: "acount=" + acount + "&pass=" + pass,
success: function(msg){
alert('数据提交成功');
if(msg == "success"){
alert(msg);
$("#form").html("<div class=\"form1\">登录成功,欢迎" + acount + "!</div>");
}else {
$("#confirm").text("没有此用户或者密码不正确!");
}
}
});
}
include('libs/init.php');$smarty->display('index.htm');
//echo $row['name'];
include 'configs/config.php';
require 'includes/db.php';
$username=isset($_POST['acount']) ? $_POST['acount']:'';
$pass=isset($_POST['pass']) ? $_POST['pass']:'';$sql = "select * from my_admin where name='".$username."'and pass='".$pass."'";$rs = mysql_query($sql);while( $row = mysql_fetch_array($rs)){ echo 'success'; }
?>
$(document).ready(function(){
$("#form").submit(function() //这里少了一个 {
alert('111');
login();
return false;
});
});
难道你不看错误控制台吗?
$(document).ready(function(){
$("#form").submit(function() //这里少了一个 {
alert('111');
login();
return false;
});
});
action.js
$(document).ready(function(){
$("#form").submit(function(){ //这里原来少了个 {
alert('111');
login();
return false;
});
});
function login() {
var acount = $("#acount").val();
var pass = $("#pass").val();
if (acount == "") {
$("#confirm").text("请输入登录用户名");
$("#acount").focus();
return false;
}
if(pass == "") {
$("#confirm").text("请输入登录密码");
$("#pass").focus();
return false;
}
$.ajax({
type: "POST",
url: "action.php",
data: "acount=" + acount + "&pass=" + pass,
success: function(msg){
alert('数据提交成功');
if(msg == "success"){
alert(msg);
//下面原来是 #form1 应该是 #form 吧
$("#form").html("<div class=\"form1\">登录成功,欢迎" + acount + "!</div>");
}else {
$("#confirm").text("没有此用户或者密码不正确!");
}
}
});
}
html:
<html>
<head>
<script type="text/javascript" src="/css/jquery.min.js"></script>
<script type="text/javascript" src="action.js"></script>
</head>
<body>
<div id="confirm"></div>
<form id="form" class="form">
<br />
帐号:<input type="text" name="aconut" id="acount" /><br /><br />
密码:<input type="password" name="pass" id="pass"/> <a href="">忘记密码?</a><br />
<div id="input_b" class="input_b">
<input type="submit" name="submit" value="登录" id="submit"/></div>
</form>
</body>
</html>
action.php
<?php
echo "success";
?>
首先你要先判断下是不是后端有问题。
即php部分。1、echo $username 和$pass,看看他们的值到底有没有错。
2、echo $sql,将打出的sql语句放入phpmyadmin或者其他sql工具里面执行下,看看有没有返回值,如果没有查到结果,证明你的sql语句错了。至于错哪里了,自己好好去查。看看到底是条件没给对,还是sql语法出错。如果以上几点都没有问题,那80%是前端出错了。
这里是PHP板块,有关前端的问题可以去 web HTML或者其他几个前端平台咨询
这个在PHP中控制。
alert() 不认html的。
有的web系统会自动加 html 标签。就是输出时不让加html标签就可以了
所以一般都用 json 做返回格式。
type: "POST",
url: "index.php",
data: "acount=" + acount + "&pass=" + pass,
success: function(msg){
alert(msg);
if(msg == "success"){
$("#form").html("<div class=\"form1\">登录成功,欢迎" + acount + "!</div>");
}else {
$("#confirm").text("没有此用户或者密码不正确!");
}
}
});
}
你怎么又提交到 index.php了???
在 echo "success"; 前不知道输出了多少内容呢。
输出的内容不好控制啊
不要引入框架,模板什么的。要不你的返回值就太乱了。
echo '';
exit;就可以了!
include 'configs/config.php';
require_once 'db.php';
if (isset($_POST['action'])=='login'){
$username=isset($_POST['acount']) ? $_POST['acount']:'';
$pass=isset($_POST['pass']) ? $_POST['pass']:'';$sql = "select * from my_admin where name='".$username."' and pass='".$pass."'";$rs = mysql_query($sql);while ($row=mysql_fetch_array($rs)){
echo "success";
//if ($row != 0){echo 'success'; }
//return 'success';
}
}
$("#form").submit(function(){
login();
return false;
});
});
function login() {
var acount = $("#acount").val();
var pass = $("#pass").val();
if (acount == "") {
$("#confirm").text("请输入登录用户名");
$("#acount").focus();
return false;
}
if(pass == "") {
$("#confirm").text("请输入登录密码");
$("#pass").focus();
return false;
}
$.ajax({
type: "POST",
url: "includes/action.php",
data: "acount=" + acount + "&pass=" + pass+"&action=login",
success: function(msg){
alert(msg);
if(msg == "success"){
$("#form").html("<div class=\"form1\">登录成功,欢迎" + acount + "!</div>");
}else {
$("#confirm").text("没有此用户或者密码不正确!");
}
}
});
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="static/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="./includes/jquery/jquery.js"></script>
<script type="text/javascript" src="./includes/jquery/action.js"></script>
<title></title>
</head>
<body>
{!--include file="head.htm"--}
<div id="center_body" class="center_body" >
<div class="login_aconut" id="login_aconut" >
<div class="login_bg" id="login_bg">测试登陆地址</div>
<form id="form" class="form">
<br />
帐号:<input type="text" name="aconut" id="acount" /><br /><div id="confirm" class="confirm"><br /></div>
密码:<input type="password" name="pass" id="pass"/> <a href="">忘记密码?</a><br />
<div id="input_b" class="input_b">
<input type="submit" name="submit" value="登录" id="submit"/></div>
</form>
</div>
</div>{!--include file="footer.htm"--}
</body></html>/code]