Php JSON查询的问题
我使用json onclick脚本来触发php函数。 我使用以下命令调用php函数:Php JSON查询的问题,php,ajax,json,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.st
$('#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);
}
}
);
} );
如果该项是触发器,则调用my index.php中的slim属性
$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的答案总是成功
但函数不会返回true或false
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)
在if(json&&json.status)
之前查看您得到了什么。我确信json
不是您所期望的。它似乎json==false
(因为函数Stop()
返回false
)没有json。status
-或者你的Stop
函数的其余部分返回更多的内容。你必须用json
包装你的响应,然后回显它。我没有看到任何回显当我用slim进行查询时,我使用回显json\u encode($admin->cont->Stop($action));“唯一的问题是,json的答案总是成功的,但函数不会返回true或false”这是什么意思?您的意思是在$.post('index.php/stop/'+id+''处的回调函数中返回的是函数(json){
不包含任何json?或者该函数没有按您希望的那样工作?我尝试做的是调用以触发该函数。调用中的ID是一个端口号,这在页面中会更改几次。如果函数完成,则我希望显示一条成功消息。如果函数失败,则我希望显示一条f在函数中,我输入了一对返回false和一个返回true,并输入了警报(json);我确实收到了消息false,这是什么意思?没有json.status?很抱歉,我看到没有像您所说的状态。如果我更改代码以返回true,json警报将显示true,消息显示为false时显示相同的消息。我已放置警报(json.status);在同一页上,我收到一条未定义的消息。此时此刻,我不知道我必须在哪里找到问题。我认为您期望过高。json
仅包括通过echo json_encode(…);
发送的数据,仅此而已(因此在所有示例中,它被命名为“数据”,而不是“json”)。如果您在json.status
中期望json连接状态,那么您就错了。现在您只能使用if(json){…}else{…}