当我的XAJAX调用,通过PHP,返回NULL - 它在IE上显示(但它应该什么都不显示),如何纠正这个?

时间:2013-02-19 20:46:50

标签: php internet-explorer xajax

请查看以下代码片段:

首先,Javascript调用:

function getNewSelect(property_id){
  xajax_getSelectDropDown(unique_id);
  $(".chzn-select").chosen();
}

接下来,PHP XAJAX函数:

function getSelectDropDown($unique_id){
    //CODE ABOVE THIS POINT HAS BEEN REMOVED, IT IS IRRELEVENT FOR THIS EXAMPLE

        //Code for if no matches were found:
        $html2 = NULL;

        $objResponse = new xajaxResponse();
        if(mysql_num_rows($result) > 0){
            $objResponse->assign('subDiv', 'innerHTML', $html);
        }else{
            $objResponse->assign('subDiv', 'innerHTML', $html2);
        }

        $objResponse->script("$('.chzn-select-ajax').chosen();");

    return $objResponse;
}

最后这是HTML代码:

<div id="subDiv"></div>

现在,当上面的PHP函数进入else并分配$html2时 - 我希望不向用户显示任何内容。在大多数浏览器上,这很好,它完美地运行。不幸的是在Internet Explorer(IE 9我可以确认,我无法测试其他版本),它实际显示DIV调用的以下内容:

  

如果找到了结果并且它没有处理else,那么它在所有浏览器上都能正常工作,并按预期显示新的下拉列表。

我该怎么做才能解决这个问题?这是IE的已知问题吗?感谢。

我想添加,所以没有混淆,CHZN调用只是为下拉列表添加样式,如下所示:http://harvesthq.github.com/chosen/

1 个答案:

答案 0 :(得分:1)

更好地利用这个:

    if(mysql_num_rows($result) > 0){
        $objResponse->assign('subDiv', 'innerHTML', $html);
    }else{
        $objResponse->assign('subDiv', 'innerHTML', '');
    }

IE显示为null,因为$ html2 = NULL ......最好用$ html2 =“”或类似的东西试试;)

Saludos。