JSON查询问题

时间:2013-07-14 15:15:59

标签: php ajax json

我使用json onclick脚本来触发php函数。 我用:

调用php函数
$('#dtable').on('click', '[name=option3]', function () {
    var select = $(this);
    var id = select.attr('id');
    $.post('index.php/stop/'+id+'', function(json) {
            if (json && json.status) {
                $("#failure").show().delay(2500).fadeOut(1500);
            } else {
                $("#success").show().delay(2500).fadeOut(1500);
            }
        }
    );
} );

如果该项目是触发器,他会在我的index.php中调用一个苗条属性

$admin->slim->post('/stop/:action', function($action) use ($admin) {
    $admin->slim->contentType('application/json');
    echo json_encode($admin->cont->Stop($action));

在此之后他触发了函数

function Stop($action) {
    $port = $action;
    $connection = @fsockopen($this->cfg->base_host, $port, $errno, $errstr, 1);
    if (!$connection) {
        return false;
    } else {
        $pid = $this->db->query("SELECT pid FROM testdb WHERE port='" . $port . "'", SQL_ALL, SQL_ASSOC);
        if ($pid == "") {
            return false;
        } else {
                  ......
                }
            }
        }
    }
}

唯一的问题是,json的答案总是成功的 但是函数

没有从真或假的回复

有人知道我做错了什么,或者有人可以给我一些建议。

  • 添加了有关该功能的更多信息

1 个答案:

答案 0 :(得分:1)

alert(json);之前使用if (json && json.status)来查看您获得的内容。我确信json不是你所期望的。似乎json == false(因为函数Stop()返回false)并且没有json.status - 或者您的Stop函数的其余部分可以返回更多内容。