PHP数组错误

时间:2015-09-01 05:57:23

标签: php jquery json

还在试图找出php ...

我有一些PHP工作:

<? php
    $returnstr = "";

    //get some info... 
    $returnstr += "title ".$that_info;

    //do some stuff...
    $returnstr += "notes ".$did_stuff;

    echo $returnstr;
?>

测试时这是一个文件,并且工作正常。

现在,测试看起来很好,将php代码移动到自己的文件中并使用函数创建.js文件:

function get_aint_id(aint_nr)
{
    jQuery.ajax({
        type: "POST",
        url: 'get_ta_top_row.php',
        data: {functionname: 'get_aint_id', arguments: [aint_nr]}, 
        success: function(data) 
        {
            document.getElementById("notify").innerHTML = data;
        },
        error: function(data)
        {
                    return 0;
        }
    });
}

停止工作,总是返回0。

将PHP代码修改为(直接回显值而不是构建字符串):

<? php
    //get some info... 
    exho "title ".$that_info;

    //do some stuff...
    echo "notes ".$did_stuff;
?>

再次工作!

但现在的问题是我需要返回一些值(状态(成功/错误),ID,一些信息文本等...)。

经过一番搜索,似乎json似乎是最好的选择。所以我将.php修改为:

<?php
header('Content-type: application/json');
    $function = $_POST['functionname'];

    switch($function)
    {
        case "get_aint_id":
        {
            $aint_nr = "%".$_POST['arguments'][0];
            get_aint_id($aint_nr);
            break;
        }
    }

    function get_aint_id($aint_nr)
    {
        header('Content-type: application/json');
        // Configure connection params
        $response_array = array();

        // Connect to DB
        $conn = odbc_connect( $connect_string, $db_user, $db_pass );
        if (!$conn) 
        {
            exit("Connection could not be established.");
        }

        $query = "SELECT * FROM DBA.db_table ".
            "WHERE text_val LIKE '".$aint_nr."'";

        $result = odbc_exec($conn, $query);
        if (!$result) 
        {
            odbc_close($conn);
            $response_array['status'] = "error";
            $response_array['message'] = "Failure ".$query; 
            $response_array['aint_id'] = 0;
            exit(json_encode($response_array));
        }

        odbc_fetch_row($result)
        $response_array.['status'] = 'success';
        $response_array.['message'] = 'Found: '.odbc_result($result, 2);  //<<<<<< line 58
        $response_array.['aint_id'] = odbc_result($result, 1);
        odbc_close($conn);

        echo json_encode($response_array);
    }
?>

现在我在PHP错误日志文件中收到错误:

[01-Sep-2015 07:19:51 Europe/Paris] PHP Parse error:  
    syntax error, unexpected '$response_array' (T_VARIABLE) in 
    C:\wamp\www\Concepts\get_ta_top_row.php on line 58

(我在上面的代码中标记了第58行)

我还注意到日志中的另一个错误:

[01-Sep-2015 04:06:16 UTC] PHP Warning:  
    PHP Startup: Unable to load dynamic library 
    'c:/wamp/bin/php/php5.5.12/ext/php_intl.dll' - 
    Das angegebene Modul wurde nicht gefunden.
    in Unknown on line 0

[01-Sep-2015 04:06:16 UTC] PHP Warning:  
    PHP Startup: Unable to load dynamic library 
    'c:/wamp/bin/php/php5.5.12/ext/php_ldap.dll' - 
    Das angegebene Modul wurde nicht gefunden.
    in Unknown on line 0

不确定这是否与上述错误有关。

任何想法?这是我的语法吗?它是缺少的dll吗?到目前为止,php似乎非常温和,也许只是因为我习惯了非常不同的语言?

1 个答案:

答案 0 :(得分:0)

为什么使用$response_array.['message'].作为数组。在没有.

的情况下使用它
$response_array['message'] = 'Found: '.odbc_result($result, 2);  //<<<<<< line 58