Javascript 检查AJAX响应数据是否为空/空白/空/未定义/0 我所拥有的:
我有jqueryajax函数,它在查询数据库后返回HTML。根据查询结果,函数将根据需要返回HTML代码或不返回任何内容(即空白) 我需要的是: 我需要有条件地检查数据是否为空 我的代码:Javascript 检查AJAX响应数据是否为空/空白/空/未定义/0 我所拥有的:,javascript,jquery,ajax,null,Javascript,Jquery,Ajax,Null,我有jqueryajax函数,它在查询数据库后返回HTML。根据查询结果,函数将根据需要返回HTML代码或不返回任何内容(即空白) 我需要的是: 我需要有条件地检查数据是否为空 我的代码: $.ajax({ 类型:“POST”, url:“”, 数据:相关建筑或项目表, 成功:功能(数据){ 如果(!data){ //如果(数据=“未定义”){ //如果(数据==“未定义”){ //如果(数据==null){ //如果(data.length==0){ //如果(data.length!=0){
$.ajax({
类型:“POST”,
url:“”,
数据:相关建筑或项目表,
成功:功能(数据){
如果(!data){
//如果(数据=“未定义”){
//如果(数据==“未定义”){
//如果(数据==null){
//如果(data.length==0){
//如果(data.length!=0){
//如果(数据===0){
//如果(数据==“0”){
警报(“数据:”+数据);
}
},
错误:函数(错误抛出){
警报(错误抛出);
警报(“AJAX有错误!”);
}
});
我的问题是:
我尝试了各种条件,但没有一种能正确检查数据。根据我的发现,空白警报消息并不意味着数据无效
//if(data="undefined"){
这是一个赋值语句,不是一个比较。另外,“undefined”
是一个字符串,它是一个属性。检查它是这样的:如果(data==undefined)
(没有引号,否则它是一个字符串值)
如果未定义,则可能返回空字符串。您可以尝试检查
falsy
值,如If(!data)
以及在问题的注释部分提供了以下正确答案:
这对我起了作用。。
PHP页面上的PHP代码
$query_de="sql statements here";
$sql_de = sqlsrv_query($conn,$query_de);
if ($sql_de)
{
echo "SQLSuccess";
}
exit();
然后,AJAX代码就出现了
jQuery.ajax({
url : "page.php",
type : "POST",
data : {
buttonsave : 1,
var1 : val1,
var2 : val2,
},
success:function(data)
{
if(jQuery.trim(data) === "SQLSuccess")
{
alert("Se agrego correctamente");
// alert(data);
} else { alert(data);}
},
error: function(error)
{
alert("Error AJAX not working: "+ error );
}
});
注意:“SQLSuccess”一词必须从PHP中接收({
if(data.trim()==''){alert("Nothing Found");}
类型:“POST”,
url:“”,
数据:相关建筑或项目表,
成功:功能(数据){
//do console.log(数据);
控制台日志(数据);
//你会发现里面的数据到底是什么
//我不喜欢alter(数据);现在,因为它不喜欢
//始终完成需求
//之后,你可以很容易地把条件,如果你不想喜欢
//如果(数据!='')
//如果(数据==null)
//或者你想要的任何东西
},
错误:函数(错误抛出){
警报(错误抛出);
警报(“AJAX有错误!”);
}
});
返回JSON并使用标志。
$.trim
首先删除字符串以删除空格。如果(!$.trim(数据))
不是调试工具。请正确记录值并检查其值。如果(数据==未定义)
有效。感谢您的解释。按时间顺序选择正确答案。代码很好,但对问题以及如何解决问题的一些解释确实会有帮助。data!=''可能会在空ajax返回时触发,因此注释建议不正确。trim()几乎所有其他帖子建议的函数都是必需的。我建议使用console.log();
而不是alert()
。这是更好的练习。如果你养成了警告错误消息的习惯,有一天你可能会发现自己陷入一个无限循环的警告框中,无法关闭浏览器/程序。这是一个很好的答案。如果我的数据
是一个数组,而我想单独处理空数组的情况,那该怎么办?@tHomas,那么你就可以了t为空数组的情况添加条件这并不能回答问题。询问者明确希望知道如何测试正文中的非响应,而不是发送一些字符串。
jQuery.ajax({
url : "page.php",
type : "POST",
data : {
buttonsave : 1,
var1 : val1,
var2 : val2,
},
success:function(data)
{
if(jQuery.trim(data) === "SQLSuccess")
{
alert("Se agrego correctamente");
// alert(data);
} else { alert(data);}
},
error: function(error)
{
alert("Error AJAX not working: "+ error );
}
});
if(data.trim()==''){alert("Nothing Found");}
$.ajax({
type:"POST",
url: "<?php echo admin_url('admin-ajax.php'); ?>",
data: associated_buildsorprojects_form,
success:function(data){
// do console.log(data);
console.log(data);
// you'll find that what exactly inside data
// I do not prefer alter(data); now because, it does not
// completes requirement all the time
// After that you can easily put if condition that you do not want like
// if(data != '')
// if(data == null)
// or whatever you want
},
error: function(errorThrown){
alert(errorThrown);
alert("There is an error with AJAX!");
}
});