0

私が書いているアプリの ajax と php でポーリングしようとしています。php は基本的に文字列化されたオブジェクトを受け取り、後で読み取ることができるようにファイルに入れます。オブジェクトへの書き込みが正常に機能しています。私が今抱えている問題は、php が存在しないファイルを読み取ろうとすると、 $.post() 呼び出しにエラー コードが返されるように見えることです。JSONと成功を返すようにしたいので、処理は少し異なります。

問題のphpは次のとおりです。

public function read(){
        $id = $this->input->post('id');
        $test = fopen("./meetings/".$id.".mt", 'r');
        if(!$test){
            error_log("Unable to open file, you mutt!");
            echo json_encode(array('status' => "FAIL"));
        }else{
        error_log("Here! 2");
        $obj = array();
            while(!feof($test)){
                error_log("Here! 3");
                $tmp = fgets($test);
                error_log("Here! 4");
                if($tmp){
                    $obj[count($obj)] = $tmp;
                }
            }
            fclose($test);
            error_log("Here! 5");
        if(!count($obj) > 0){
            echo json_encode(array('status' => "FAIL"));
        }
        echo json_encode(array('status' => 'OKAY', 'obj' => $obj));
        }
    }

Javascript(jqueryを使用)は次のとおりです。

function read(){
        $.post('<?php echo base_url(); ?>meetings/read', {id: <?php echo $id;?>}, function(json){
            console.log(json.status);
            if(json.status == 'OKAY'){
                for(var i = 0 ; i < json.obj.length ; i++){
                    parseObject(json.obj[i]);
                }
            }
        }, 'json');
    }

JavaScriptが成功関数に到達しません。使用して確認しajaxError()ましたが、これを修正する方法がわかりません。または、phpがエラーを送信している理由でさえ、私はそれを求めていると思います。それ以外の場合、phpは期待どおりに機能します。また、ポーリングは実際に必要な頻度でサーバーを呼び出しています。これを修正するための提案はありますか? さらに情報が必要な場合は、お問い合わせください。ありがとう!

4

1 に答える 1