我已编写此代码从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]
));
}
?>
答案 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);
}
}