Возвращает данные из функции в ajax javascript

#javascript #php #ajax

#javascript #php #ajax

Вопрос:

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

Вот функция notify()

 public function notify()
{

    $id = $this->user['id'];

    $agent = AffiliateAgents::get($id);
    if (empty($agent)) redirect('affiliate/sales/browse');

    $_POST = array_map('trim', $_POST);

    $agent = [
        'commission_claim' => 1

    ];

    AffiliateAgents::update($id, $agent);
    $status = AffiliateAgents::get($id ,'commission_claim');

    return $status;
}
  

Вот ajax

 $("#notify").click(function() {
        $.ajax({
            url: 'affiliate/sales/notify',
            success: function() {
            showNotification("success", "Berjaya!", "Anda berjaya membuat tuntutan komisyen");
        }

    });

    })
  

Комментарии:

1. Это ядро PHP или какой-либо фреймворк?

2. это фреймворк, сэр

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

4. извините, сэр, я забыл также пометить framework

5. Нет, мое дорогое имя означает Laravel или CodeIgniter и т.д.

Ответ №1:

просто передайте параметр в функцию успеха в этой строке:
...
success: function(yourData) {
...

Комментарии:

1. Итак, если бы я хотел, чтобы моя функция возвращала данные $ status из функции в ajax, я должен написать $ status в функции success?

2. нет, имя параметра может быть любым, просто не ставьте $ inf перед именем переменной (поскольку это javascript). Итак, в вашем случае это может быть имя ba status . Вы можете попробовать выйти из системы следующим образом: ... success: function(status) { console.log(status) } ...

3. итак, в notify () я делаю это правильно с точки зрения возврата данных в вызов ajax?

4. Мне удается узнать значение $ status с помощью var_dump, но, похоже, оно не возвращается обратно в ajax после завершения всего процесса внутри функции notify ()

5. да, я могу заверить, что URL-адрес правильный, потому что, когда я нажимаю кнопку, он перенаправляет к функции и выполняет операции внутри функции, связанные с базой данных, и да, он также отправляет данные в базу данных, поэтому URL-адрес функционирует

Ответ №2:

Как вы хотели отключить кнопки после успешного запуска Ajax. Вы должны написать следующий код

в части ajax

     success : function(data){
     // disable button
     if(data="success"){
       $("#buttonId").attr("disabled","disabled");
     } else{
       alert("Status not success");
     }
}
  

Ответ №3:

Вы можете получить возвращенные данные (из PHP) следующим образом:

 //In the ajax...
success: function(data) {
      console.log(data)
    }
  

успех
Введите: Функция (Любые данные, текстовый статус строки, jqXHR jqXHR ) Функция, которая будет вызвана в случае успешного выполнения запроса. Функции передаются три аргумента: Данные, возвращаемые с сервера, отформатированные в соответствии с параметром DataType или функцией обратного вызова dataFilter, если указано; строка, описывающая состояние; и объект jqXHR (в jQuery 1.4.x, XMLHttpRequest). Начиная с jQuery 1.5, параметр успеха может принимать массив функций. Каждая функция будет вызываться по очереди. Это событие Ajax.

http://api.jquery.com/jquery.ajax/

Комментарии:

1. Итак, если бы я хотел, чтобы моя функция возвращала данные $ status из функции в ajax, я должен написать $ status в функции success?

2. Нет, просто делай то, что я пишу… (php) return $status будет указан в function(data) , так что вы можете использовать данные внутри success

3. Используйте это console.log(data) , чтобы проверить, что возвращается.