Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   После проверки js выполнить php код (https://javascript.ru/forum/misc/67446-posle-proverki-js-vypolnit-php-kod.html)

jess23 17.02.2017 22:19

После проверки js выполнить php код
 
Помогите пожалуйста разобраться.

Есть функция которая отправляет форму и выводит финальное success сообщение о том, что данные отправлены, если что не так выводит сообщение о ошибке, мне нужно выполнить php код если форма успешно отправилась.

Собственно сам фрагмент проверки нажатия на кнопку:
$('#popup-checkout-button').on('click', function() {
  masked('#popup-purchase-wrapper', true);
  $.ajax({
      type: 'post',
      url:  'index.php?route=module/popup_purchase/make_order',
      dataType: 'json',
      data: $('#purchase-form').serialize(),
      success: function(json) {


        if (json['error']) {
          if (json['error']['field']) {
            masked('#popup-purchase-wrapper', false);
            $('.text-danger').remove();
            $.each(json['error']['field'], function(i, val) {
              $('[name="' + i + '"]').addClass('error_style').after('<div class="text-danger">' + val + '</div>');
            });
          }

        } else {
          if (json['output']) {

            masked('#popup-purchase-wrapper', false);
             $('#popup-checkout-button').remove();
                $('#popup-purchase-wrapper .popup-center').html(json['output']); 

          }
        }
      }
  });
});


Собственно вот здесь: $('#popup-purchase-wrapper .popup-center').html(json['output']);
вызывается json['output'] который в контроллере просто прописан таким образом: $json['output'] = $this->language->get('text_success_order'); подгружает финальное сообщение.

Мне нужно когда форма успешна, выполнить php код:
$client_id = '1';
$client_total = '3';
$client_order_id = '2';
if (isset($_COOKIE["uid"]) && isset($_COOKIE["utm_source"]) && $_COOKIE["utm_source"] == "somecpa") {
    echo '<img src="https://somecpa.com/reg.php?id='.$_COOKIE["uid"].'-'.$client_id.'_'.$client_total.'&client_order_id='.$client_order_id.'" width="1" height="1" alt="" />';
}


Подскажите, как правильно это сделать, чтобы если форма правильная, выполнялся выше указанный фрагмент php кода...

laimas 18.02.2017 04:43

Цитата:

Сообщение от jess23
если форма правильная, выполнялся выше указанный фрагмент php

Вообще-то серверу, не зависимо на чем он разговаривает, на РНР ли, или на другом языке, ровным счетом наплевать что думает клиент по подводу формы, правильная она или нет. Проверка форм на клиенте, это сервис для клиента, а проверка форм на сервере, это его святая обязанность. Клиент отдал форму серверу, и не зависимо от того что там проверялось на клиенте, сервер проверил ее данные согласно требованию и принял решение.

Какие проблемы могут быть при этом, выполнять чего-то или нет?

jess23 18.02.2017 20:50

Дело в том, что при выводе финального success сообщения (вот здесь: $('#popup-purchase-wrapper .popup-center').html(json['output']);
), я должен сгенерировать и передать ссылку (данная процедура описана на php), может вы подскажите как это сделать?

laimas 18.02.2017 21:12

Цитата:

Сообщение от jess23
Дело в том, что при выводе финального success

Причем тут success?

jess23 18.02.2017 22:21

Цитата:

Сообщение от laimas (Сообщение 444694)
Причем тут success?

Притом, что выполнить php фрагмент нужно только когда будет success сообщение на форме.

laimas 18.02.2017 22:30

Цитата:

Сообщение от jess23
Притом, что выполнить php фрагмент нужно только когда будет success сообщение на форме.

А метод success значит принадлежит дядюшке Хо? )

success - это результат запроса севера методом $.ajax, и он хрен отработает, пока сервер не вернет данные для него, вот тут success: function(json).

Надо ли еще пояснять что сервер уже знает, что клиент отработал? Или вам от клиента еще и подтверждение нужно что посылка пришла? Ну так до бесконечности можно опрашивать.

jess23 19.02.2017 12:34

laimas, :blink:

Вообщем толку от ваших ответов нету никакого... Пожалуйста, перестаньте следить за данной темой.

laimas 19.02.2017 14:09

Да ити вашу мать. Не знает сервер нихрена о клиенте. Надо чтобы тютя в тютю - ставьте значит куки не сервером а клиентом.
Просто хочется после ..., но сервером, значит после выполнения операций в success: function(json) отправляйте ajax запрос извещающий сервер.

Совсем уже охренели, серверу и так известно, что сделано, нет надо еще нагородить костылей, которых сами же и не понимают.

jess23 19.02.2017 15:38

laimas,

Вообщем, лол. Я просил помощи разобраться с этим, а не выделываться.

laimas 19.02.2017 16:10

Цитата:

Сообщение от jess23
Вообщем, лол. Я просил помощи разобраться с этим, а не выделываться.

А что мне разбираться то, я черным по белому написал - либо куки устанавливает клиент, либо после обработки ответа еще один ajax запрос сообщающий северу об этом. Или вы думаете, что есть волшебный способ догадаться серверу об этом? Тоже мне, блин, не лол.


Часовой пояс GMT +3, время: 18:22.