从javascript

时间:2015-12-27 09:39:54

标签: javascript php

我已编写此代码从javascript调用php函数,php函数只是打印它收到的参数,但是这段代码没有输出,也没有打印,我使用谷歌浏览器浏览器,请帮助。

index.html 文件

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
        <script>
            jQuery.ajax(
            {
                type: "POST",
                url: 'save.php',
                dataType: 'json',
                data: {functionname:'saveUser', arguments:["username", "password"]},

                success: function (obj, textstatus) {
                    if( !('error' in obj) ) {
                        alert(obj.result);
                    }
                    else {
                        console.log(obj.error);
                    }
                }
            });
        </script>
    </head>
</html>

save.php 文件

<?php

    header('Content-Type: application/json');   
    if( $_POST['functionname'] == 'saveUser' ) {
        echo json_encode(Array(
            result => $_POST['arguments'][0] . ' ' . $_POST['arguments'][1]
        ));
    }

?>

输出 enter image description here

2 个答案:

答案 0 :(得分:2)

有一个错字。你错过引用数组键

试试这个

echo json_encode(Array(
        'result' => $_POST['arguments'][0] . ' ' . $_POST['arguments'][1]
        ^      ^
    ));

答案 1 :(得分:1)

save.php文件中存在语法错误。用字符串引号括起结果索引。先修复它

if( $_POST['functionname'] == 'saveUser' ) {
    echo json_encode(Array(
        'result' => $_POST['arguments'][0] . ' ' . $_POST['arguments'][1]
        /*^^^^*/
    ));
}

在index.html中,只需在ajax成功中添加以下代码即可。

success: function (obj, textstatus) {
    if( !('error' in obj) ) {
         document.write(obj.result); //This line
         alert(obj.result);
    }
    else {
       console.log(obj.error);
    }
}