从php函数返回的数据没有被if函数检测到

时间:2014-02-27 00:00:10

标签: javascript php jquery ajax

我有以下函数作用于AJAX查询:

    var formData = $(this).serialize(); //put the form names and values into an array called formdata
    $.get('filtertest.php',formData,processData); //jquery ajax call

    function processData(data){
        if(data =="a"){
        $('#content').html("<h2>You have not selected any 'types of dwelling'. Please select at least one.</h2>");
        $('#linky').hide();
        }
        else if(data=="b"){
        $('#content').html("<h2>You have not selected any 'style of dwelling'. Please select at least one.</h2>");
        $('#linky').hide();
        }
        else if(data=="c"){
        $('#content').html("<h2>You have not selected any 'situation of dwelling'. Please select at least one.</h2>");
        $('#linky').hide();
        }
        else if(data==1){
        $('#content').html('<h2>There is ' + data + ' property available!</h2>');
        $('#linky').show();
        }
        else if(data==0){
        $('#content').html('<h2>There are no properties available, please expand your search options.</h2>');
        $('#linky').hide();
        }
        else{
        $('#content').html('<h2>There are ' + data + ' properties available!</h2>');
        $('#linky').show();
        }
    }//end processData

在filtertest.php文件中,以下代码用于检查是否未输入任何字段值,如果是,则返回字母a:

//if none of the TODs are selected, returns an error
if ($_GET[tod_house]==0 && $_GET[tod_bung]==0 && $_GET[tod_flat]==0 && $_GET[tod_barnc]==0 && $_GET[tod_farm]==0 && $_GET[tod_small]==0 && $_GET[tod_build]==0 && $_GET[tod_devland]==0 && $_GET[tod_farmland]==0 ){
echo "a";
return;
}

然而,在最初的ajax函数processData中,开始if(data =="a"){的行不会捕获回显的值 - 它一直向下到最终的else函数。奇怪的是,在最后的else函数中,字母'a'被输入到html中,这意味着echo是正确的,filtertest.php文件立即返回 - 它只是没有被{{1}捕获函数测试字母'a'。

这里肯定会有一些语法错误,但是我一直在看它尝试不同的事情的最后一小时,我无法解决它,它开始真的让我烦恼!!


修改

更改下面指出的瑕疵错误后,它仍然无法正常工作。我试着回应一个不同的数字而不是一个字母。我将ifprocessData中的'a'更改为'-1'并嘿PRESTO!有用。因此,包含'a'的字符串出错 - 我是否在javascript函数中对两个字符串进行了比较错误?

1 个答案:

答案 0 :(得分:2)

问题是你如何尝试访问$_GET数组中的数据:键应该是字符串,即

$_GET['tod_house']

$_GET[tod_house]

来自Marc B' comment的更高精度:输出不仅仅是a,因此不会被选中。