从函数发送多个值到jquery ajax

时间:2011-07-06 20:58:42

标签: javascript jquery

我想对我网站中的所有ajax调用使用以下函数:

function ajaxcall(my_url, my_div, my_data)
        {
        $(my_div).append('<div style="text-align:center; position:absolute; top:0; left:0; width:100%;"><img src="/images/loading.gif" /></div>');
        $.ajax({ url: my_url,
        data: {data: my_data},
        type: 'get',
        success: function(output) 
            {
            $(my_div).html(output);
            }
        });
        }

它获取我想要的任何URL并更新我想要的DIV,到目前为止一切顺利。问题是我还需要发送一个或多个值,并希望预测这些值的名称。

<select class="formtext" name="car_id" id="car_id" onChange="ajaxcall('/ajax/carsetup.php', '#car_setups', $(this).val() )">
<option value="1">1</option>
<option value="2">2</option>
</select>

<div id="car_setups">select car</div>

所以这样做是将我的选择值发送给函数,它可以工作,但我不知道如何调用该值,现在它的调用数据,但我想在任何我想要的名称,在这种情况下car_id,动态地,甚至更糟糕我可能想在该函数的第三个插槽中发送更多值。我该如何解决这个问题?

现在print_r($_GET);给了我:

Array ( [data] => 2622 ) 

1 个答案:

答案 0 :(得分:3)

只是做:

data: my_data,

而不是:

data: {data: my_data},

然后您可以将您查看的任何值传递给AJAX脚本,例如

<select class="formtext" name="car_id" id="car_id"
 onChange="ajaxcall('/ajax/carsetup.php', '#car_setups', {car_id: $(this).val()} )">

那就是说,你应该考虑在你自己的JS中附加那个AJAX调用,而不是在HTML中内联:

 $('#car_id').change(function() {
    ajaxCall('/ajax/carsetup.php', '#car_setups', {car_id: this.value});
 });