[英]No output on calling PHP function from JavaScript
我想从JavaScript调用PHP函数。
我通过传递两个参数来调用PHP函数,并且希望该PHP函数简单地回显这些参数。 为此,我编写了以下代码,但是它不起作用,这意味着该代码什么也不打印。 请帮忙。
的JavaScript
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);
}
}
});
的PHP
<?php
header('Content-Type: application/json');
$aResult="done";
if( $_POST['functionname'] == 'saveUser' ) {
echo $_POST['arguments'][0] +" "+ $_POST['arguments'][1];
echo json_encode($aResult);
}
?>
通过使用+
,您试图将参数转换为数字并将它们加在一起。 对于字符串连接,您需要.
代替+
:
echo $_POST['arguments'][0] . " " . $_POST['arguments'][1];
但是,正如Rayon在评论中指出的那样 ,结果将得到无效的JSON。
以下代码可以很好地访问参数,并返回JSON:
<?php
header('Content-Type: application/json');
$aResult="done";
if( $_POST['functionname'] == 'saveUser' ) {
echo json_encode(Array(
'arg0' => $_POST['arguments'][0],
'arg1' => $_POST['arguments'][1],
'message' => $aResult
));
}
?>
当然,您的JavaScript不需要这些属性名称。 这将使用您当前的JavaScript警告该名称:
<?php
header('Content-Type: application/json');
if( $_POST['functionname'] == 'saveUser' ) {
echo json_encode(Array(
'result' => $_POST['arguments'][0] . ' ' . $_POST['arguments'][1]
));
}
?>
在您的php中尝试一下:
header('Content-Type: application/json');
$aResult="done";
if( $_POST['functionname'] == 'saveUser' ) {
echo $_POST['arguments'][0] +" "+ $_POST['arguments'][1];
echo json_encode(array('result'=>$aResult));
}
您正在使用obj.result在ajax成功中使用警报。 所以我在json_encode函数中使用了带有结果索引的数组。
您在json_encode php中回显的值可以在ajax成功中获得。
使用控制台日志
console.log(obj);
您将在obj中获得响应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.