如何将jQuery.post中的数据存储到本地变量,以便我可以使用它?

时间:2013-09-13 10:18:26

标签: javascript php joomla

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;
}

这里“fieldNames”显示“未定义”,但它必须显示“数据”中的字符串。 我无法将“数据”存储到变量中,因此我可以在“post”函数之后使用它。怎么做?

2 个答案:

答案 0 :(得分:1)

执行以下操作 -

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;
}

答案 1 :(得分:0)

您的作业应该有效,但您的代码是异步执行的 - 也就是说,您正在发出AJAX调用,然后在AJAX调用完成之前立即执行alert()。如果你想使用数据,你应该在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

  });