За последние 24 часа нас посетили 17374 программиста и 1716 роботов. Сейчас ищут 1499 программистов ...

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

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

  1. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    Пробуйте:
    PHP:
    1.     $(document).on("click",".open-AddBookDialog",function(){
    2.          $.post("/ajax.php", { orgid: $(this).data('id') }, function(data) {
    3.       alert(data);
    4.     });  
    5.         }
    6.     );  
     
  2. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    тоже самое но одна интересная штука !!! Он походу в этом месиве мне постовый запрос и выводит

    [​IMG]
    Сам скрин

    http://disk.tom.ru/bytktvf
    Может там как то можно указать что это разметка. html ?
     
    #52 timur2008, 26 апр 2017
    Последнее редактирование: 26 апр 2017
  3. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    В начале файла ajax.php впишите строку после <?
    exit($_POST['orgid']);
    Что вернет по клику alert
    ну или скрин с файрбага покажите по запросу. Но по хорошему надо все переписывать, заранее самостоятельно изучив немного bootstrap, jquery, js, php
     
  4. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    HTML:
    1.  
    2. <div class="modalclass">eeee5390</div>
    3. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    4.   <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    5.   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
    6. 5390
    но это я там еще стили хотел прицепить , думал может изза этого
    5390 это id который как раз нужен

    Он правильный ответ теперь возвращает , но возвращает в виде текста почемуто .
     
  5. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    он должен был возвратить только $_POST['orgid'], удалите exit($_POST['orgid']); - должен показать все остальное что задумали, но вы зря в ajax.php напихали все что вздумалось
     
  6. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    да он и показывает теперь но просто в виде текста :) Потихоньку начинаю въезжать во все это :) Теперь бы понять как этов нормальный вид привести. Тупо текст выводит ибо это в алерте выводится, а вот как это в нормальный отобразить я не могу понять :(
    если опять в тот класс передавать опять таже фигня будет :(
     
  7. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    http://getbootstrap.com/javascript/
    https://api.jquery.com/jquery.post/
    можно без bootstrap, вызов с аттрибутом id, создайте див <div id="showinfo"></div> на странице и туда передавайте, например,
    Код (Javascript):
    1.  $(document).on("click",".open-AddBookDialog",function(){
    2.         //отправляем данные на сервер
    3.         $.post("/ajax.php", { orgid: $(this).attr('id') }, function(data) {
    4.        $('#showinfo').html(data); // грузим данные в инфодив
    5.     });  
    6.         }
    7.     );
    только в ajax.php уберите bootstrap
     
  8. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    все понял завтра утром на работе приду и попробую. Походу там с разметкой трешак начинался и ничего нормально не работало по этому либо кое как и через раз.
     
  9. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    как вообще асинхронность и фреймы связаны с попапами?
     
  10. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    у меня в попап асинхронно выводится инфа :)
    --- Добавлено ---
    хмм ничего не выводит :(
     
  11. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    не выводятся данные всеравно :(
    может там еще css нужен ?? Я так понял что в бутстрапе реализуются эта штука с помощью стилей ? И когда на страницу кидается определенная разметка к ней применяются стили и он всплывает
     
  12. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
  13. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
  14. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    можно без bootstrap, вызов с аттрибутом id, создайте див <div id="showinfo"></div> на странице и туда передавайте, например,
    Код (Javascript):
    1.  $(document).on("click",".open-AddBookDialog",function(){
    2.         //отправляем данные на сервер
    3.         $.post("/ajax.php", { orgid: $(this).attr('id') }, function(data) {
    4.        $('#showinfo').html(data); // грузим данные в инфодив
    5.     });
    6.         }
    7.     );
     
  15. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    да я так уже сделал, там просто почему то не выводятся данные :(
    ответ формируется но почему то не отображается
     
    #65 timur2008, 27 апр 2017
    Последнее редактирование: 27 апр 2017
  16. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    Так выводятся:
    Код (Javascript):
    1. $(document).on("click",".open-AddBookDialog",function(){
    2.         //отправляем данные на сервер
    3.         $.post("/ajax.php", { orgid: $(this).attr('id') }, function(data) {
    4.        $('#showinfo').html('Выбран неправильный атрибут'); // грузим данные в инфодив
    5.     });
    6.         }
    7.     );
     
    timur2008 нравится это.
  17. timur2008

    timur2008 Новичок

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

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    Да, а вы где-то в другом месте его создали?
     
  19. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    да я протупил походу и думал что он тоже в ajax.php должен выводится. Но теперь опять проблема, он в первый раз форму всеравно не рисует. Тоесть классы которые на той странице рисуют форму не выполняются :(
     
  20. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    Какая еще форма? Что он должен рисовать? Какие еще классы? Что выводит по моему последнему коду на странице?
     
  21. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    все я не знаю почему но он ничего не выводил, я прямо весь код из других классов в файл ajax php перенес и все заработало. Спасибо вам за два дня мучений со мной , я понимаю это было трудно :)
     
  22. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    в файл ajax php туда не надо ничего сувать кроме данных по организации, если все работает - отлично, я тоже сначало пробовал сувать и смотреть заработает ли))
     
  23. timur2008

    timur2008 Новичок

    С нами с:
    14 окт 2015
    Сообщения:
    136
    Симпатии:
    2
    Скажите а как можно сделать чтобы это еще потом в модальном окне вывести можно было ? Я нашел вот такой вот код
    Код (CSS):
    1. /*
    2. To change this license header, choose License Headers in Project Properties.
    3. To change this template file, choose Tools | Templates
    4. and open the template in the editor.
    5. */
    6. /*
    7.     Created on : 27.04.2017, 9:34:25
    8.     Author     : Tim
    9. */
    10. #modal_form {
    11.     width: 300px;
    12.     height: 300px; /* Рaзмеры дoлжны быть фиксирoвaны */
    13.     border-radius: 5px;
    14.     border: 3px #000 solid;
    15.     background: #fff;
    16.     position: fixed; /* чтoбы oкнo былo в видимoй зoне в любoм месте */
    17.     top: 45%; /* oтступaем сверху 45%, oстaльные 5% пoдвинет скрипт */
    18.     left: 50%; /* пoлoвинa экрaнa слевa */
    19.     margin-top: -150px;
    20.     margin-left: -150px; /* тут вся мaгия центрoвки css, oтступaем влевo и вверх минус пoлoвину ширины и высoты сooтветственнo =) */
    21.     display: none; /* в oбычнoм сoстoянии oкнa не дoлжнo быть */
    22.     opacity: 0; /* пoлнoстью прoзрaчнo для aнимирoвaния */
    23.     z-index: 5; /* oкнo дoлжнo быть нaибoлее бoльшем слoе */
    24.     padding: 20px 10px;
    25. }
    26. /* Кнoпкa зaкрыть для тех ктo в тaнке) */
    27. #modal_form #modal_close {
    28.     width: 21px;
    29.     height: 21px;
    30.     position: absolute;
    31.     top: 10px;
    32.     right: 10px;
    33.     cursor: pointer;
    34.     display: block;
    35. }
    36. /* Пoдлoжкa */
    37. #overlay {
    38.     z-index:3; /* пoдлoжкa дoлжнa быть выше слoев элементoв сaйтa, нo ниже слoя мoдaльнoгo oкнa */
    39.     position:fixed; /* всегдa перекрывaет весь сaйт */
    40.     background-color:#000; /* чернaя */
    41.     opacity:0.8; /* нo немнoгo прoзрaчнa */
    42.     -moz-opacity:0.8; /* фикс прозрачности для старых браузеров */
    43.     filter:alpha(opacity=80);
    44.     width:100%;
    45.     height:100%; /* рaзмерoм вo весь экрaн */
    46.     top:0; /* сверху и слевa 0, oбязaтельные свoйствa! */
    47.     left:0;
    48.     cursor:pointer;
    49.     display:none; /* в oбычнoм сoстoянии её нет) */
    50. }
    Код (Javascript):
    1. /*
    2. * To change this license header, choose License Headers in Project Properties.
    3. * To change this template file, choose Tools | Templates
    4. * and open the template in the editor.
    5. */
    6. $(document).ready(function() { // вся мaгия пoсле зaгрузки стрaницы
    7.     $('a#go').click( function(event){ // лoвим клик пo ссылки с id="go"
    8.         event.preventDefault(); // выключaем стaндaртную рoль элементa
    9.         $('#overlay').fadeIn(400, // снaчaлa плaвнo пoкaзывaем темную пoдлoжку
    10.              function(){ // пoсле выпoлнения предъидущей aнимaции
    11.                 $('#modal_form')
    12.                     .css('display', 'block') // убирaем у мoдaльнoгo oкнa display: none;
    13.                     .animate({opacity: 1, top: '50%'}, 200); // плaвнo прибaвляем прoзрaчнoсть oднoвременнo сo съезжaнием вниз
    14.         });
    15.     });
    16.     /* Зaкрытие мoдaльнoгo oкнa, тут делaем тo же сaмoе нo в oбрaтнoм пoрядке */
    17.     $('#modal_close, #overlay').click( function(){ // лoвим клик пo крестику или пoдлoжке
    18.         $('#modal_form')
    19.             .animate({opacity: 0, top: '45%'}, 200,  // плaвнo меняем прoзрaчнoсть нa 0 и oднoвременнo двигaем oкнo вверх
    20.                 function(){ // пoсле aнимaции
    21.                     $(this).css('display', 'none'); // делaем ему display: none;
    22.                     $('#overlay').fadeOut(400); // скрывaем пoдлoжку
    23.                 }
    24.             );
    25.     });
    26. });
    И моя разметка
    HTML:
    1.   <p><a id="go" href="#">ссылка</a></p>
    2.   <!-- Модальное окно -->
    3. <div id="modal_form">
    4.     <span id="modal_close">X</span>
    5.         <form action="" method="post">
    6.             <div id='showinfo'></div>
    7.         </form>
    8. </div>
    9. <div id="overlay"></div>
    Я тут чтото не много запутался , тут получается я в начале при клике на ссылке загрузил инфу в мое модальное окно, а потом нажав по ссылке
    HTML:
    1. [html]  <p><a id="go" href="#">ссылка</a></p>
    Открываю окно. Мне получается чтобы при клике открыть окно нужно чтобы и то и то выполнилось.
    Мне получается нужно модифицировать скрипт
    Код (Javascript):
    1. $(document).ready(function() { // вся мaгия пoсле зaгрузки стрaницы
    2.     $('td#orgdata').click( function(event){ // лoвим клик пo ссылки с id="orgdata" это уже в новом коде модифицированом
    3.  
    4.  
    5. сначала нужно получить данные асинхронным скриптом
    6. $(document).on("click",".open-AddBookDialog",function(){
    7.   $.post("/ajax.php",
    8.   {
    9.        orgid: $(this).data('id')
    10.   },
    11.         function(data)
    12.        {
    13.              $('#showinfo').html(data);
    14.        });
    15.     }
    16.   );
    17. итогда все круто будет он запишет туда данные и дальше их выведет
    18.  
    19.         event.preventDefault(); // выключaем стaндaртную рoль элементa
    20.         $('#overlay').fadeIn(400, // снaчaлa плaвнo пoкaзывaем темную пoдлoжку
    21.              function(){ // пoсле выпoлнения предъидущей aнимaции
    22.                 $('#modal_form')
    23.                     .css('display', 'block') // убирaем у мoдaльнoгo oкнa display: none;
    24.                     .animate({opacity: 1, top: '50%'}, 200); // плaвнo прибaвляем прoзрaчнoсть oднoвременнo сo съезжaнием вниз
    25.         });
    26.     });
    но он зараза почему то всеравно пустое модальное окно выводит, почему так ?

    аа нужно как то создать элемент с дивом с id = showinfo
     
    #73 timur2008, 27 апр 2017
    Последнее редактирование: 27 апр 2017
  24. marsik

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

    С нами с:
    30 дек 2008
    Сообщения:
    246
    Симпатии:
    17
    Вы его уже не используете или вдовесок еще какие-то окна к нему подкручиваете? Я же вам практически рабочий код по нему дал, осталось только исправить в файле ajax лишнее и код окна на страницу повесить, что бы оно открывалось))
     
    timur2008 нравится это.
  25. timur2008

    timur2008 Новичок

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