从jquery ajax调用返回数据

时间:2009-11-03 17:33:10

标签: php jquery ajax

我试图从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一直空着。感谢

5 个答案:

答案 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。