1

我正在尝试创建一个动态搜索功能,但有一个我无法解决的问题。

以下代码有什么问题?

JSON:

...
$result=$obj->Decode_Serialize($resource);// method to unserialize string value


$text= isset($result['text_department_code']) ? 
    $result['text_department_code']: 'a';

if(!empty($search) && !empty( $checkbox) && !empty($match) && !empty($sort) && !empty($text))
{
    echo $text= $result['text_department_code'];  // error Notice: Undefined index: text_department_code in line 18
    print $text;
    print_r($result);
}
...

我不知道为什么即使 isset 已包含在内,它也无法正常工作。//$result['text_department_code'];

print_r($result) output:
Array
(
    [search_deparment_code] => department_code
    [checkbox_deparment_code] => true
    [match_deparment_code] => all
    [sort_deparment_code] => ASC
    [text_deparment_code] => aa
)

//jquery将序列化字符串传递给ajax

function getInstantSearchResult(){
    $('#keypress').keyup(function(){      
        var Post_String = $('#forma').serialize();
        //  ajax_get_data(1,st);
        //alert(Post_String);
        $.ajax({
            type : 'POST',
            url : 'jsonAjaxFinder.php',
            data : {Query_String:Post_String},
            success : function(value){
                alert(value);
                ajax_get_data(1);
            }
        });
    });        
} 
 function ajax_get_data(page){
       var businessUnitRequest;        

       if (window.XMLHttpRequest)
       {
         businessUnitRequest=new XMLHttpRequest();
       }
       else
       {
         businessUnitRequest=new ActiveXObject("Microsoft.XMLHTTP");
       }

        var frame = document.getElementById("frame");  
        frame.style.left='20px';
        var paginations = document.getElementById("pagination");    

        businessUnitRequest.open("POST", "jsonAjaxFinder.php", true);
        businessUnitRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
        businessUnitRequest.onreadystatechange = function (){
                 if((businessUnitRequest.readyState == 4) && (businessUnitRequest.status=200))
                 {

                      frame = document.getElementById("frame");  
                       var leng= frame.rows.length;
                      for (z = leng - 1; z > 0; z--){
                         frame.deleteRow(z);            
                       }
                    var d = JSON.parse(businessUnitRequest.responseText);
                    for(var o in d){
                        var row = frame.insertRow(1);
                        var cell1 = row.insertCell(0);
                        var cell2 = row.insertCell(1);

                        cell1.style.paddingLeft='15%';
                        cell2.style.paddingLeft='1%';
                        cell1.innerHTML=  d[o].department_code;
                        cell2.innerHTML= d[o].description;
                    }    

                 }
        }

             businessUnitRequest.send('no_page='+parseInt(page));
             //+'&serialize='+ serialize
             businessUnitRequest.innerHTML="requesting....";
    }

有人可以向我解释我的问题,因为我不知道如何解决吗?那

4

3 回答 3

0

我不确定你想在这里实现什么?

echo $search = $result['text_department_code']; 

如果您想回显 $search 是否匹配 $result[...],请执行以下操作:

echo $search == $result['text_department_code'];

如果您想在 $search 中存储 $result[...] 并回显它是否失败,您必须检查 $result[...] 是否再次设置:

echo (isset($result['text_department_code']) && $search = $result['text_department_code']);
于 2012-10-22T18:16:52.720 回答
0

查看您提供的 var_dump 并将其与您的代码进行比较。你有错别字...

print_r($result) output:
Array
(
    [search_deparment_code] => department_code
    [checkbox_deparment_code] => true
    [match_deparment_code] => all
    [sort_deparment_code] => ASC
    [text_deparment_code] => aa
)

转储中有“部门”,数组索引中有“部门”。

本质上,您的所有 if(isset()) 行都返回 false。

于 2012-10-22T18:18:35.607 回答
0

我不确定这是否有帮助,但在你引用的 if 语句中,$result['text_department_code']但它应该是$text

if(!empty($search) && !empty( $checkbox) && !empty($match) && !empty($sort) && !empty($text))
{
    echo $search = $text;
    print $search;
    print_r($result);
}
于 2012-10-22T18:20:44.517 回答