我的PHP代码
function MailList()
{
$this->Form['email'] = $_POST["email"];
$index = $this->mgr->getMailList($_POST["email"]);
}
//sql code
function getMailList($email)
{
$mailArray = Array();
$sql = "select vchEmail as mailName from tbDownloadDetails where vchEmail='".$email."'";
$result = mysql_query($sql, $this->con);
$isexist=false;
while ($row = mysql_fetch_array($result))
{
$isexist=true;
array_push($mailArray, $row['mailName']);
}
return ($mailArray);
}
Ajax代码
function getMailList(e)
{
$value=e;
$.ajax({
url:'http://example.com/report/' + "filedownload.html",
type:"POST",
data:{action:'MailList',email:$value},
dataType:"html",
success:function (resp) {
if (resp !== '') {
alert("Success");
} else {
alert("Fail");
return false;
}
}
});
return false;
}
这是我的代码。但它不起作用。当我输入电子邮件ID时,它始终显示(警报)成功,如果它不存在于db中。这就是代码总是带来正值。如何纠正代码。 提前谢谢....
答案 0 :(得分:1)
在你的回复中,你正在返回一个数组。如果根本不存在电子邮件,它将返回一个空数组..
因此您的回复将是
[]而不是''。
在成功回调中更改您的比较。并检查这样。
resp.length === 0
答案 1 :(得分:0)
我假设在调用脚本的动作MailList时调用了getMailList()。
您正在返回一个数组。如果找不到电子邮件地址,则脚本将返回一个空数组。尝试检查resp.length === 0
:)
答案 2 :(得分:0)
试试这样:
<?php
function getMailList($email)
{
$mailArray = Array();
$sql = "select vchEmail as mailName from tbDownloadDetails where vchEmail='".$email."'";
$result = mysql_query($sql, $this->con) or die(mysql_error());
if(mysql_num_rows($result)>0){
while ($row = mysql_fetch_array($result))
{
array_push($mailArray, $row['mailName']);
}
}
else{
return false;
}
return count($mailArray)>0 ? $mailArray : false;
}
?>
Ajax代码:
function getMailList(e)
{
$value=e;
$.ajax({
url:'http://example.com/report/' + "filedownload.html",
type:"POST",
data:{action:'MailList',email:$value},
dataType:"html",
success:function (resp) {
if (resp !== false) {
alert("Success");
} else {
alert("Fail");
return false;
}
}
});
return false;
}
答案 3 :(得分:0)
返回字符串而不是return 'true';
或使用===
进行比较。