2015-12-27 88 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); 
    } 
}