AJAX函数的条件参数

时间:2014-12-31 06:51:58

标签: jquery ajax

我有一段像这样的代码..

    var v = $('#time_type').val();

    /* ajax call to fetch limit no. of data continuously */
    ajaxcall_continue = $.post("ajax.php",
            {   
            'time_type':v,'func':'show_datatable',
            'start_row':outer_start_row,'limit':outer_limit
            },
            function(response)
            {
                /*---- function body ----*/
            },'json');

现在这里将是一个类似

的条件
var v = $('#time_type').val();
if(v == 'custom')
{
     var st = $('#start_time').val();
     var en = $('#end_time').val();
     ajaxcall_continue = $.post("ajax.php",
                {   
                'time_type':v,'start_time':st,'end_time':en,'func':'show_datatable',
                'start_row':outer_start_row,'limit':outer_limit
                },
                function(response)
                {
                    /*---- function body ----*/
                },'json');
}
else
{
     ajaxcall_continue = $.post("ajax.php",
                {   
                'time_type':v,'func':'show_datatable',
                'start_row':outer_start_row,'limit':outer_limit
                },
                function(response)
                {
                    /*---- function body ----*/
                },'json');
}

但问题是,我不想在if else语句中写两个单独的$.post函数。

最好我想根据条件制作两个单独的参数列表,并在$post函数中使用它们。

我无法找到执行此操作的程序。

2 个答案:

答案 0 :(得分:3)

试试这个:

var options = {};
options.url = "example.com";
options.data = {};
if(condition) {
    options.data.param1 = 'abc';
    ...
} else {
    options.data.param2 = 'xyz';
    ...
}
...
$.post(options);//only once !

答案 1 :(得分:1)

您是否可以使用变量来实现相同的功能?

var parameter = ''
var v = $('#time_type').val();
if(v == 'custom')
{
 var st = $('#start_time').val();
 var en = $('#end_time').val();
 parameter = "{'time_type':v,'func':'show_datatable','start_row':outer_start_row,'limit':outer_limit }";
}
else
{
    parameter = " {'time_type':v,'func':'show_datatable','start_row':outer_start_row,'limit':outer_limit}"
}

ajaxcall_continue = $.post("ajax.php",parameter,
            function(response)
            {
                /*---- function body ----*/
            },'json');