За последние 24 часа нас посетили 15511 программистов и 1598 роботов. Сейчас ищут 830 программистов ...

jquery + ajax метод load как передать данные?

Тема в разделе "JavaScript и AJAX", создана пользователем qwert_ukg, 4 май 2011.

  1. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    Необходимо передать переменные на удаленную страницу, если указать значения явно то все работает, но надо брать значения из переменных.

    так не работает
    [js]...
    $('.add_btn').click(function(){
    var k = $('.add_input').attr('value');
    });


    $('.add_btn_t').click(function(){
    var i = $(this).attr('name');
    });

    $('#popup_bag').load('http://zamanpharm.kz/dub/templates/bt_okto/zak.php',{id:i, koll:k});
    ...[/js]

    так работает
    [js]...
    $('.add_btn').click(function(){
    var k = $('.add_input').attr('value');
    });


    $('.add_btn_t').click(function(){
    var i = $(this).attr('name');
    });

    $('#popup_bag').load('http://zamanpharm.kz/dub/templates/bt_okto/zak.php',{id:"123", koll:"9000"});
    ...[/js]
     
  2. guest2013

    guest2013 Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    109
    Симпатии:
    0
    а в первом примере чему равно i и k?
    Разве их область определения не заканчивается внутри функций?
     
  3. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    а можно глобально описать переменные???
     
  4. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    незнаком с явой
     
  5. guest2013

    guest2013 Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    109
    Симпатии:
    0
    Я тоже ламер, но по моему можно
     
  6. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    обьявил i, k глобально, тепер результат есть но i, k - undefined
     
  7. guest2013

    guest2013 Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    109
    Симпатии:
    0
    а объявление из функций убрать?
    т.е. var стереть?
     
  8. guest2013

    guest2013 Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    109
    Симпатии:
    0
    я jquery плохо знаю. точнее пока совсем не знаю.
    Не знаю чего делает load. Но мне кажется, если тебе надо чтоб этот load происходил после нажатия на кнопку, то load вставить внутрь функции. Или сделать отдельную функцию с load и вызывать её из этих двух функций

    хотя тебе наверное что то другое надо
     
  9. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    все так и сделал, но переменные не получают значения
    вот весь скрипт:

    [js]var i, k;

    $(document).ready(function(){

    $.fn.alignCenter = function() {
    var marginLeft = - $(this).width()/2 + 'px';
    var marginTop = - $(this).height()/2 + 'px';
    return $(this).css({'margin-left':marginLeft, 'margin-top':marginTop});
    };

    $.fn.togglePopup = function(){
    if($('#popup_bag').hasClass('hidden'))
    {
    $('#popup_bag')
    .html($(this).html())
    .alignCenter()
    .toggleClass('hidden');
    }
    else
    {
    $('#popup_bag').toggleClass('hidden');
    }
    };

    $.fn.togglePopup2 = function(){
    if($('#popup_add').hasClass('hidden'))
    {
    $('#popup_add')
    .html($(this).html())
    .alignCenter()
    .toggleClass('hidden');

    $('.add_btn').click(function(){
    k = $('.add_input').attr('value');
    });

    }
    else
    {
    $('#popup_add').toggleClass('hidden');
    }
    };


    $('.add_btn_t').click(function(){
    i = $(this).attr('name');
    });

    $('#popup_bag').load('http://zamanpharm.kz/dub/templates/bt_okto/zak.php',{id:i, koll:k});
    });

    [/js]
     
  10. guest2013

    guest2013 Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    109
    Симпатии:
    0
    я так понимаю, что в этом коде значение переменной i присвоится после нажатия на кнопку. А load срабатывает сразу... еще до этого.
    Ведь $('.add_btn_t').click(function(){ ... по моему только подписывается на событие click и сама функция click сработает только после нажатия на кнопку. А следующая строка выполняется сразу после подписывания
     
  11. guest2013

    guest2013 Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    109
    Симпатии:
    0
    Ты в каком нибудь дебаге попробуй поставить брекпоинты на 46 и 49 строку и посмотри кто раньше срабатывает
     
  12. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    и вправду, чето я не доглядел, поместил
    [js]$('#popup_bag').load('http://zamanpharm.kz/dub/templates/bt_okto/zak.php',{id:i, koll:k});[/js]
    внутрь
    [js]$.fn.togglePopup2 = function(){[/js]
    и все срабатывает как нада
    guest2013, спасибо за разбор
     
  13. guest2013

    guest2013 Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    109
    Симпатии:
    0
    Если честно я не понял сценарий, который должен происходить. Ну что и в какой последовательности нажимает пользователь и что при этом происходить должно.
     
  14. guest2013

    guest2013 Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    109
    Симпатии:
    0
  15. Alex_pac

    Alex_pac Активный пользователь

    С нами с:
    11 апр 2011
    Сообщения:
    285
    Симпатии:
    1
    Адрес:
    Россия, Тольятти