#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). Итак, в вашем случае это может быть имя bastatus
. Вы можете попробовать выйти из системы следующим образом:... 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.
Комментарии:
1. Итак, если бы я хотел, чтобы моя функция возвращала данные $ status из функции в ajax, я должен написать $ status в функции success?
2. Нет, просто делай то, что я пишу… (php)
return $status
будет указан вfunction(data)
, так что вы можете использовать данные внутри success3. Используйте это
console.log(data)
, чтобы проверить, что возвращается.