2

我想我需要第二双眼睛。

我有一些 ajax 调用 php 文件,它返回 json。这一切都很好。然后我会提醒我返回的用于测试目的的数据元素。在这样做时,我缩小了我的功能没有被调用。

<?php

// database functions
$response = array();
$count = 1;

// connect to db
function connect() {   
$response['alert'] = 'connect ran'; // does not get alerted
}

// loop through query string
foreach ($_POST as $key => $value) {

switch ($key) {
    case 'connect':
        $response['alert'] = 'case ran';
        if ($value == 'true') {
        $response['alert'] = 'if ran'; // this is what gets alerted, should be overwriten by 'connect ran'
            connect(); // function call does not work?
        } else {
            $response['alert'] = 'false';
            $mysqli->close();
        }
        break;

        case 'otherstuff':
        break;
}
++$count;
}

$response['count'] = $count;

echo json_encode($response);

?>

有任何想法吗?谢谢。

4

2 回答 2

6

你的$response变量超出范围..global在你的函数中使用关键字来注册你的外部变量

function connect() {
    global $response;    
    $response['alert'] = 'connect ran';
}

或 SDC 的编辑:

function connect($response) { 
    $response['alert'] = 'connect ran';
}

connect($response);
于 2012-12-07T15:19:46.240 回答
0

实际上,您定义了结果变量,但使用了另一种类型,并且顶部还有另一个结果变量,因此您将数据放入 $result[] 但您尝试使用 $result ,因此您的代码可能不会给您预期的结果。

于 2012-12-07T15:24:45.497 回答