从JavaScript调用PHP函数时没有输出
我想从JavaScript调用一个PHP函数 我通过传递两个参数来调用PHP函数,我希望PHP函数只响应这些参数。为此,我编写了以下代码,但它不起作用,这意味着代码不打印任何内容。请帮忙 JavaScript从JavaScript调用PHP函数时没有输出,javascript,php,Javascript,Php,我想从JavaScript调用一个PHP函数 我通过传递两个参数来调用PHP函数,我希望PHP函数只响应这些参数。为此,我编写了以下代码,但它不起作用,这意味着代码不打印任何内容。请帮忙 JavaScript jQuery.ajax( { type: "POST", url: 'save.php', dataType: 'json', data: {functionname:'saveUser', arguments:[username, password]},
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
通过使用
+
,您试图将参数转换为数字并将它们相加。对于字符串串联,您需要
而不是+
:
echo $_POST['arguments'][0] . " " . $_POST['arguments'][1];
但是作为注释中的人造丝,您将得到无效的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]
));
}
?>
通过使用
+
,您试图将参数转换为数字并将它们相加。对于字符串串联,您需要
而不是+
:
echo $_POST['arguments'][0] . " " . $_POST['arguments'][1];
但是作为注释中的人造丝,您将得到无效的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成功中使用alert。所以我在json_encode函数中使用了数组和结果索引
您在json_encode php中的echo值您可以在ajax成功中获得该值
使用类似于日志的控制台
console.log(obj);
您将在obj中得到响应。在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成功中使用alert。所以我在json_encode函数中使用了数组和结果索引
您在json_encode php中的echo值您可以在ajax成功中获得该值
使用类似于日志的控制台
console.log(obj);
您将在obj中得到响应。json\u encode($aResult)的输出是什么代码>?PHP文件未发送有效的
json
或..@T.J.Crowder,echo$\u POST['arguments'][0]+“”+$\u POST['arguments'][1];echo json_编码($aResult)我想code>不会返回有效的json。仅echo json\u编码($aResult)代码>可以..+
用于连接。。使用
@RayonDabre:我刚刚看到你对
的评论。如果您愿意,我可以删除我的答案,这样您就可以将其作为答案发布。(我不怎么做PHP,我一直在想它为什么不工作。)@RayonDabre:我只是在用一个无聊的老PHP安装。我找回了我用过的钥匙。但是使用字符串,所以我将把它们加回去代码>?PHP文件未发送有效的json
或..@T.J.Crowder,echo$\u POST['arguments'][0]+“”+$\u POST['arguments'][1];echo json_编码($aResult)我想code>不会返回有效的json。仅echo json\u编码($aResult)代码>可以..+
用于连接。。使用
@RayonDabre:我刚刚看到你对
的评论。如果您愿意,我可以删除我的答案,这样您就可以将其作为答案发布。(我不怎么做PHP,我一直在想它为什么不工作。)@RayonDabre:我只是在用一个无聊的老PHP安装。我找回了我用过的钥匙。但是使用字符串,所以我会把它们加回去。@ali-salman:check-console.log(obj);在ajax中success@ali-salman:检查console.log(obj);在ajax中success@AliSalman:它在这一点上起作用(我在发布之前用ajax代码尝试过)。当然,JavaScript会提醒未定义的,因为我发回的不是它想要的。但是钥匙很容易换。我添加了另一个块,它将参数发送回,并连接在一起,正如result
一样,它会被你的JavaScript代码提醒。是的,它会起作用。如果你使用firefox检查控制台出错,你只需要更改你的java脚本ajax成功响应firebug@devpro:上面的工作没有任何JavaScript更改。是的,我的兄弟,这肯定是工作。我也用同样的方法进行了测试+1我已经更新了我的问题,请现在查看并测试,它对我不起作用me@AliSalman:它在这一点上起作用(我在发布之前用ajax代码尝试过)。当然,JavaScript会提醒未定义的,因为我发回的不是它想要的。但是钥匙很容易换。我添加了另一个块,它将参数发送回,并连接在一起,正如result
一样,它会被你的JavaScript代码提醒。是的,它会起作用。如果你使用firefox检查控制台出错,你只需要更改你的java脚本ajax成功响应firebug@devpro:上面的工作没有任何JavaScript更改。是的,我的兄弟,这肯定是工作。我也用同样的方法进行了测试+1我已经更新了我的问题,请现在查看并测试,它对我不起作用