我试图从jquery ajax调用调用的函数返回数据。我的函数位于一个php文件中,看起来像是他的
valid_user() {
$id = $_POST('id');
if($id == 'hello'){
return true;
}
else{
return false;
}
}
这是我的ajax电话
$.ajax({
type: "POST",
url: path + "valid_user",
sucess: function(msg) {
alert("Data returned: " + msg );
}
});
我已经测试了everthing并且函数正在进行(此示例已更改)但我无法返回函数valid_id()的返回值。我怎么得到这个?变量msg一直空着。感谢
答案 0 :(得分:4)
据我了解,有几个问题。
1)没有调用方法valid_user()
2)网址看起来也不正确。
3)“success”关键字拼写为“成功”
4)您没有传递任何“数据”。
以下是根据您的需求量身定制的ajax调用示例。
$.ajax({
type: "POST",
url: "validateUser.php",
data: "id=49",
success: function(msg){
alert( "true or false: " + msg );
}
});
答案 1 :(得分:1)
看起来你拼错了sucess
----但这可能不在你的运行代码中。您应该检查success
的第二个参数:
success:function(data, textStatus)
答案 2 :(得分:0)
您需要编写调用该函数的PHP服务器端代码,并将其返回值写入输出流。例如:
<?php echo valid_user(); ?>
答案 3 :(得分:0)
这应该可行 - 您可能希望对POST值进行更好的清理以防万一。
在PHP文件中:
$id = isset($_POST['id']) ? trim($_POST['id']) : '';
$return = 'false';
if($id!=''){
valid_user($id);
}
echo $return;
valid_user($id) {
if($id == 'hello'){
$return = 'true';
}
}
jQuery Call:
<script>
id = 'hello';
$.ajax({
type: "POST",
url: "validateUser.php?id="+id,
success: function(msg) {
alert("Data returned: " + msg );
}
});
</script>
答案 4 :(得分:0)
感谢您的帮助,我想出了问题,它之所以无效,是因为我的函数valid_id()返回true或false,我需要返回echo“true”;并回声“虚假”;一旦我这样做,msg变量包含数据true或false。