За последние 24 часа нас посетил 31941 программист и 1408 роботов. Сейчас ищут 892 программиста ...

Выполнение js скриптов в ajax

Тема в разделе "PHP для новичков", создана пользователем Danil005, 5 мар 2017.

  1. Danil005

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

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    На сколько я понимаю, чистый ajax не может выполнять скрипты jQuery или JS, та как получает некий набор символов, так как сделать, чтобы этот набор символов был преобразован в JS скрипт и выполнил его?
    Таким образом отправляется запрос:
    Код (Javascript):
    1. $(".pay").on( "click", function () {
    2.                 jQuery.ajax({
    3.                     url:      "../pay.php",
    4.                     type:     "POST",
    5.                     dataType: "html",
    6.                     data: jQuery("#pay").serialize(),
    7.                     success: function(response) {
    8.                     document.getElementById('__pay').innerHTML = response;
    9.                 },
    10.                 error: function(response) {
    11.                 document.getElementById('__pay').innerHTML = "Error/1#3F29";
    12.                 }
    13.              });
    14. });
    А в pay.php находиться JS-скрипт, например:
    Код (Javascript):
    1. document.getElementsByTagName('form')[0].submit();
     
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Danil005 ну в документации по jquery можно почитать. http://api.jquery.com/jquery.globaleval/
    Но так лучше не делать, просто получи json и в нём передай какую функцию выполнить и её параметры, на странице готовь эту функцию.
    есть ещё JSONP но это так для развития кругозора.
     
  3. Danil005

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

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    @denis01, а как передать функцию через json?
     
  4. Danil005

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

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    Все, до меня дошло! При обработке я делал вывод информации в файле pay.php, поэтому я подумал: "нельзя ли сделать тоже самое, но с отправкой формой". Вообщем, как вы и сказали, я передал функцию.
    F: document.getElementsByTagName('form')[1].submit();
    Где [1] - номер формы, считается с 0.
    Код (Javascript):
    1. $(".pay").on( "click", function () {
    2.                 jQuery.ajax({
    3.                     url:      "../system/Pay/pay.php",
    4.                     type:     "POST",
    5.                     dataType: "html",
    6.                     data: jQuery("#pay").serialize(),
    7.                     success: function(response) {
    8.                     document.getElementById('__pay').innerHTML = response;
    9.                     document.getElementsByTagName('form')[1].submit();
    10.                 },
    11.                 error: function(response) {
    12.                 document.getElementById('__pay').innerHTML = "Error/1#3F29";
    13.                 }
    14.              });
    15. });