2015-12-27 36 views
0

我已经写了这段代码来调用一个PHP函数从JavaScript,PHP函数只是打印它收到的参数,但这段代码没有输出,没有任何打印,我正在使用谷歌浏览器浏览器,请帮助。从javascript文件调用函数javascript

的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

+0

声明您通过POST方法发送的'functionname'在哪里? –

+0

仍然没有输出 –

+0

data:{functionname:'saveUser',arguments:[“username”,“password”]}, –

回答

2

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

试试这个

echo json_encode(Array(
     'result' => $_POST['arguments'][0] . ' ' . $_POST['arguments'][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); 
    } 
}