Javascript 如何将jQuery.post中的数据存储到局部变量,以便使用它?

Javascript 如何将jQuery.post中的数据存储到局部变量,以便使用它?,javascript,php,joomla,Javascript,Php,Joomla,此处“fieldNames”显示“undefined”,尽管它必须显示“data”中的字符串。 我无法将“数据”存储到变量中,以便在“post”函数之后使用它。如何做到这一点?请执行以下操作- this.formsValidation = function(form_id) { var fieldNames; jQuery.post('index.php','option=com_itcs_forms&controller=itcs_fields&task=get

此处“fieldNames”显示“undefined”,尽管它必须显示“data”中的字符串。 我无法将“数据”存储到变量中,以便在“post”函数之后使用它。如何做到这一点?

请执行以下操作-

this.formsValidation = function(form_id)
{
    var fieldNames;
    jQuery.post('index.php','option=com_itcs_forms&controller=itcs_fields&task=getFieldsNameForValidation&tmpl=component&form_id='+form_id,
    function(data)
    {
        fieldNames = data;
    });
    alert(fieldNames);
    return false;
}

您的分配应该可以工作,但是您的代码是异步执行的——也就是说,您正在发出AJAX调用,然后在AJAX调用完成之前立即执行
alert()
。如果您希望处理数据,则应在AJAX回调中这样做,从而保证在代码执行时拥有数据:

this.formsValidation = function(form_id)
{
    var fieldNames;
    jQuery.post('index.php','option=com_itcs_forms&controller=itcs_fields&task=getFieldsNameForValidation&tmpl=component&form_id='+form_id, 
     function(data)
     {
         fieldNames = data;
         alert(fieldNames);
     });

     return false;
}

可能重复使用firebug或chrome中的其他控制台,甚至i ie。放置断点,查看数据中的内容,数据。响应可能是您的数据所在。您的格式,这会伤害我的眼睛。。。当提出问题时,请尝试格式化您的代码,使其缩进良好,并尽可能可读。帮助别人帮助你:)谢谢大家的帮助,我已经得到了答案。问题在于“ajax同步”,这就是答案
var fieldNames;
jQuery.post('index.php','option=com_itcs_forms&controller=itcs_fields&task=getFieldsNameForValidation&tmpl=component&form_id='+form_id,
function(data)
  {
     fieldNames = data;
     alert(fieldNames);
     // do more stuff here

  });