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
)

//シリアライズ文字列をajaxに渡すJquery

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'];

$ result[...]を$searchに保存し、失敗したかどうかをエコーする場合は、$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ステートメントでuが参照しまし$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 に答える