За последние 24 часа нас посетили 17405 программистов и 1718 роботов. Сейчас ищут 1477 программистов ...

Как написать ajax запрос

Тема в разделе "JavaScript и AJAX", создана пользователем timur2008, 23 апр 2017.

  1. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    Здравствуйте. Я начал изучать JS + AJAX сразу же и вообщем написал функцию но ничего не работает :( Скорее всего все не правильно , но как правильно понять пока что не могу . Вообщем как я думаю как все работает, поправьте если я не прав. Я использую bootsrtap а в частности такую клевую штуку как модальные окна. Поэтому я хочу в модальное окно передать парметр и чтото с ним сделать. Я так понял что для бутстрапа есть специальное событие открытие(точнее будет сказать отображение) окна shown.bs.modal. Поэтому я хочу написать функцию которая бы сработала после открытия этого окна и сделала сама асинхронный пост- запрос без обновления формы . Она бы взяла этот параметр который я передаю в модальное окно и пульнула его туда в ПОСТ-масиве и таким образом я бы смог его нормально обработать.Вытащить от туда нужный мне элемент и отправить его в мою функцию. Я сделал вот так
    Код (Javascript):
    1. $.ajax.on('shown.bs.modal',function()({
    2.         type: 'POST',
    3.         url: 'Tempdata.php',
    4.         data: тут поидее мой параметр передается но как его взят я не знаю,
    5.         success: function(data){
    6.         $(#myModalBox).html(data);  
    7.         }
    8.     });
    но ничего не работает. Вот это работает
    Код (Javascript):
    1. $(document).on("click",".open-AddBookDialog",function(){
    2.             var myorgid = $(this).data('id');
    3.             alert(myorgid);        
    4.         }
    5.     )
    Скажите как совместить эти два скрипта ?? В переменную myorgid передается правильное значение но как мне его потом передать в аяксовую функцию ? И вообще как правильно ее написать ??
     
    #1 timur2008, 23 апр 2017
    Последнее редактирование: 23 апр 2017
  2. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    Код (Javascript):
    1.   $(document).on("click",".open-AddBookDialog",function(){
    2.             var myorgid = $(this).data('id');
    3.             alert(myorgid);
    4.            
    5.             $.ajax({
    6.                 type: "POST",
    7.                 url:"Tempdata.php",
    8.                 data: "orgid="+myorgid,
    9.                 succeess :function(text){
    10.                     alert("ffff");
    11.                 }
    12.             })
    13.         }
    14.     )
    Сделал вот так , но всеравно не работает :(
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не юзай $.ajax метод. Это низкоуровневый метод с большим числом настроек. Используй $.post() - он простой как палка.
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Что значит "не работает"? Запрос не отправляет? А может отправляет, но у тебя сервер не отвечает на него? А может отправляет, но не туда? Ты уверен, что у тебя имя файла, принимающего запрос, с большой буквы начинается? Открываем инструменты разработчика в браузере, вкладка sources/исходники, находим там твой код, ставим брейкпоинты, отлаживаем пошагово.
     
  5. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    аа да он отрабатывает функция при саксессе работает , но данные в пост запросе не передаются :(
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    попробуй как я сказал
     
  7. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    блин не могу понять как там его юзать , примеров куча но чето ничего не понятно :(
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Код (Javascript):
    1. $.post( "test.php", { name: "John", time: "2pm" }, function (r) {
    2.     alert(r);
    3. });
     
  9. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    хмм написал вот так
    Код (Javascript):
    1.  $(document).on("click",".open-AddBookDialog",function(){
    2.             var myorgid = $(this).data('id');
    3.             alert(myorgid);
    4.          
    5.             $.post("Tempdata.php",{orgid: myorgid} ,function (r){alert(r);});
    6.          
    7.      
    8.     )
    ,алерт не выводится , и при этом в
    Код (Javascript):
    1. echo "<pre>"; print_r("bbb".$_POST['orgid']); echo "</pre>";
    кроме bbb ничего не выводится и еще отображается новое окно которое выводит весь html код
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    урл не от корня
     
  11. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    у меня эта страница прямо в корне лежит
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а урл - не от корня
     
  13. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    да я уже так сделал, оказывается почему то бутстрап не успевает получить id и отображает страницу раньше чем выводит модальное окно :( А так аяксовый запрос работает
     
  14. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Бутстрап ничего не делает сам. Страницу отображает браузер. То, в каком порядке происходят процессы на странице, определяется разработчиком. Пилите, Шура, пилите.
     
  15. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    Наверное нужно типа такого:
    PHP:
    1. //Идем почитывать http://jquery.page2page.ru/index.php5/Ajax
    2. $('#myModal').on('shown.bs.modal', function () { alert('Окно открыли, отправляем данные через $.post или $.get или еще как-нибудь') });
     
    timur2008 нравится это.
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    нехрен модалы попапать при открытии страницы потому что =)
     
  17. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    спасибо за ссылку сейчас почитаю :)
    --- Добавлено ---
    да я думал что это хорошая идея , я вообще не думал что это все в такой жеский головняк выльется, я вообще в шоке просто
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    потому что боженька тебя бережет
    ибо для тех, кто попапает модалы при загрузке - для тех отдельное место в аду греется
     
  19. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    Например, дать выбрать город по умолчанию для нового посетителя, и поставить куку с данным городом, при последующих заходах данного посетителя отдавать данные по городу куки
     
  20. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    да там все сложнее. У меня есть таблица со списком и нужно при щелчке на каждой записи из этой таблице чтобы появлялось окно с инфой по этой строке.
     
  21. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    --- Добавлено ---
    да там все сложнее. У меня есть таблица со списком и нужно при щелчке на каждой записи из этой таблице чтобы появлялось окно с инфой по этой строке.
     
  22. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    @marsik
    это не причина для попапа =) чесслово. для попапа при загрузке страницы нет причин. вообще и никогда.
    --- Добавлено ---
    @timur2008
    и нафига тогда попап и аякс при загрузке?
     
  23. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    Логика то не сложная, по клику открывай окно и подгружай туда данные

    Попапы - необходимое зло)) Сам использую на одном сайте, если у посетителя нет куки посетителя, что он уже тут был -> открываю окно с выбором города и вешаю куку посетителя.
    Многие по таком принципу открывают окно с подпиской на их паблики
     
  24. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну
    я не согласен. я попапы использую только в случае если надо переспросить точно при точно что-то критическое.

    Город можно спрашивать не попапом, а плашкой сверху. Это не напрягает. А блокирующий основной контент попап это как хватать за руку.
     
  25. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    бывает ситуация когда в модальном окне что-то важное и оно вызывается нажатием на кнопку, но адрес страницы меняется (например якорь добавляется) и можно этот адрес переслать, тогда при загрузки страницы необходимо показать это модальное окно сразу
     
  26. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    и в каком таком случае при переходе на отдельную страницу, связанную с определённым действием, нужно показать модал, а не показать содержимое модала прямо на этой специальной странице? =)