JS jquery和ajax问题

时间:2010-12-28 15:39:13

标签: php javascript jquery ajax

嗨我有些事情有问题

这是代码

function get_char_val(merk) {
 $.ajax({
  type: "POST",
  url: "char_info2.php",
  data: { name: merk },
  dataType: "html",
  success: function(data){return(data);}
});

}
alert(get_char_val("str"));

当警报出来时它输出未定义请快速帮助我这两天xC

5 个答案:

答案 0 :(得分:3)

get_char_val不会返回任何内容。 success回调需要alert(data)来从AJAX返回数据。

$.ajax是异步的 - 这意味着它不会与其他代码按顺序发生,这就是回调存在的原因。

答案 1 :(得分:3)

您的return;语句会将值返回anonymous function,然后传入success handler。你不能返回这样的值,你需要调用另一个回调。

function get_char_val(merk, cb) {
   $.ajax({
      type: "POST",
      url: "char_info2.php",
      data: { name: merk },
      dataType: "html",
      success: function(data){cb.apply(this, data);}
   });
}

get_char_val("str", function(data) {
    alert(data);
});

答案 2 :(得分:2)

您可以在ajax调用选项中设置async:false config参数,也可以使用回调。

使用Async:false -

    function get_char_val(merk)
    {  
      var returnValue = null;
        $.ajax
        (
            {   
                type: "POST",
                async:false,   
                url: "char_info2.php",   
                data: { name: merk },   
                dataType: "html",  
                success: function(data){returnValue = data;} 
            }
        ); 
     return returnValue;
    }
    alert(get_char_val("str")); 

P.S:请注意,建议不要将ajax调用设为同步。

答案 3 :(得分:0)

由于您执行了异步ajax调用,因此服务器的响应将在“success”函数中处理。成功函数的返回是无用的,您应该直接在函数

中使用“data”参数

答案 4 :(得分:0)

这应该有效。像这样使用它。

function get_char_val(merk) {
var myReturnData= "";
 $.ajax({
  type: "POST",
  url: "char_info2.php",
  data: { name: merk },
  dataType: "html",
  success: function(data){myReturnData = data;}
});
return myReturnData;
}
alert(get_char_val("str"));

只需了解您的代码问题即可。使用右侧函数下的return语句。