从先前的ajax调用通过.load传递参数

时间:2013-12-13 17:36:07

标签: javascript jquery ajax

在这个上撕掉我的头发......确定它只是我的功能结构。

基本上我在Ajax加载的选项卡中进行Ajax调用。在内部进行的调用将记录写入数据库并返回一个值。我可以提醒值,但是当我尝试在我的.load()调用中将它用作数据参数时,它不会被传递?

因为他们在同一个成功函数中我只是想(愚蠢?)我可以很容易地引用它!

$('#convert-2-booking').click(function(e) {
    var quoteid = $(this).attr("title");
    $.ajax({
        type: "POST",
        url: 'tabs/convert-2-booking.asp?Planner_ID='+$('#convert-2-booking').attr("title")+'',
        data: quoteid,
        cache: false,
        dataType: "html",
        success: function(responseText){
            var ajax_load = "<img class='loading' src='images/load.gif' alt='loading...' />";
            var loadUrl = "tabs/booking.asp";
            bookingid = responseText;

            //above gets correct returned id.

            $("#bookingtab").html(ajax_load).load(loadUrl, { 'bookingid': bookingid } ); // not here though :(
            alert(bookingid) // alerts the correct id here too!
            setTimeout(function() {
                            
                // move to bookings tab after 3 seconds

                $("#tabs").tabs( "option", "active", 3 );
                // load correct record into tab
            }, 3000);
        },
        error: function(responseText){
            alert("NOT:"+responseText);
            //alert(responseText);
            $("#tabs").tabs( "option", "active", 2 ); //load previous tab itself if returns error..
        },
    });
});

2 个答案:

答案 0 :(得分:0)

尝试通过“booking.asp?bookingid = ...”传递它 像这样:

.load(loadUrl+"?bookingid="+bookingid)

这是一个解决方法;我不确定为什么load()不通过你的数组做同样的事情...也许是因为你只检查服务器端的GET变量而load()给你POST ...?

答案 1 :(得分:0)

最终决定将id存储在会话中我需要的几秒钟。不太理想,但现在是一种解决方法,足以让我向我的客户演示。