ajax запрос к php

D
На сайте с 28.06.2008
Offline
997
352

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

В js обрабатывающем капчу нашел условие, которое проверяет успешность прохождения.

Вот тут

jQuery.ajax({
'type': 'POST',
'url': '/index.php?option=com_firm&view=item&format=json&task=code',
'dataType': 'json',
'timeout': 5000,
'data': {'code': code},
'success': function (res) {

if(res.status > 0) {
***сюда нужно вставить запрос к пхп
location.reload();
}
},
'error': function(jqXHR, textStatus) {
console.log('Error: list');
}
});
}

мне и нужно выполнить ajax запрос к php, чтобы уже из пхп сделать запрос к базе.

ДЛя меня пока JS темный лес, прошу помочь.

Нужно делать как-то так?

в JS

if(res.status > 0) {
'type': 'POST',
'url': '/file.php',
'dataType': 'json',
'timeout': 5000,
'data': {'code': 1},

location.reload();
}

А в пхп file.php

$code= $_POST['code'];
if ($code>0){
делаю нужный запрос
}

Есть ли ошибки? Пока даже не пробовал ибо думаю что вообще чушь написал....

webiumpro
На сайте с 20.03.2017
Offline
39
#1
Dram:
ибо думаю что вообще чушь написал....

Правильно думаете)

Если используете jQuery, то почитайте тут документацию по использованию ajax. Там есть простые примеры.

Код по js вообще синтаксически неверно написан. Как-то так хотя бы надо:


if(res.status > 0) {
jQuery.ajax({
type: 'POST',
url: '/file.php',
dataType: 'json',
timeout: 5000,
data: {'code': 1},
success: function (response) {
location.reload();
},
error: function (jqXHR, textStatus) {
console.log('Error: list');
}
});
}


---------- Добавлено 10.09.2019 в 19:11 ----------

И еще, если в dataType передаете json, то и возвращать из php обязательно нужно json, иначе получите ошибку parse error
Копирование лендингов. Разработка на фреймворке сервисов. Создание сайтов (/ru/forum/994418)
D
На сайте с 28.06.2008
Offline
997
#2

Так мне вроде не нужно получать ответ от сервера - нужно только отправить команду чтобы пхп очистил таблицу.

lutskboy
На сайте с 22.11.2013
Offline
104
#3

если не нужно то и не получайте ее

можно так

$.get('script.php', {name:'value'});

или

$.post('script.php', {name:'value'});

Z0
На сайте с 03.09.2009
Offline
735
#4

Или так, как вариант


if(res.status > 0) {
$.ajax({
url: "/file.php",
type: "POST",
data: {"code": 1},
success: function(html){
location.reload();
}
});
}
D
На сайте с 28.06.2008
Offline
997
#5

Че то я запутался.

На примерах в сети в основном формы и кнопка отправить, там все банально.

А вот у меня есть самописный компонент, мне нужно передать переменную в файл

/var/www/firm/components/com_firm/views/item/tmpl/price.php

В нужном месте JS мне прописать?

$.post('/var/www/firm/components/com_firm/views/item/tmpl/price.php', {cod:'1'});

И как дальше когда эта переменная перенесется в пхп - при следующей загрузке страницы за которую отвечает файл price.php?

Че-то пробую, ловить ее там так

<?php
$code= $_POST['code'];
if ($code>0){
echo "da";
}
var_dump($code);
?>

нифига не выходит - не передается....

дани мапов
На сайте с 06.09.2012
Offline
197
#6

У вас не путь к файлу должен быть, а адрес, можно с указанием домена, что-то вроде:


$.post('http://example.com/firm/components/com_firm/views/item/tmpl/price.php', {cod:'1'});

Но конечно надо правильный адрес и доступен ли вообще этот PHP файл извне.

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
D
На сайте с 28.06.2008
Offline
997
#7

В консоле разработчика вижу что запрос уходит, код 200

причем в пхп файле в начале

defined('_JEXEC') or die('Restricted access');

пробовал это убирать - сразу 500 ошибка у аякс запроса да и напрямую он не открывается.

Да и не предназначен он (файл) открываться напрямую, там показывать нечего, это системный файл, и мне просто в него нужно прокинуть переменную....

Что без вариантов?

---------- Добавлено 10.09.2019 в 21:59 ----------

Ура!!! Сделал.

Поднял проверку получения переменной выше запрета к файлу

defined('_JEXEC') or die('Restricted access');

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий