Новосибирск +7(383)

По всем вопросам :

Столкнулся с проблемой, когда для выполнения Ajax запроса необходимо открывать php страницу, но если страница не прописана в MVC модели компонента Joomla, то ее вызов блокируется безопасностью.

Выход из ситуации - записать обработку POST и GET запросов на странице заголовков view.html.php (/administrator-site/view/<Наименование>/)

На примере задачи : На форме расположен input, необходимо разместить кнопку, которая обновит запись в БД, по результату спрятать элементы .

 

Реализация Script на основной странице:

<script> 
jQuery("body").on("click", ".btn_ex_save", function(e) {
e.preventDefault();
//ищем ID в БД
var clickedID = this.id.split("-");
var DbNumberID = clickedID[1];
//данные для отправки POST запросом
var myData = 'recordToEx='+DbNumberID+'&recordSTR='+document.getElementById('quant-'+DbNumberID).value;
jQuery.ajax({
type: "POST",
url: "index.php?option=op1&view=v1",//ссылка на текущую страницу
dataType:"text",
data:myData,
success:function(response){
document.getElementById('div-'+DbNumberID).style.display= "none";},
error:function (xhr, ajaxOptions, thrownError){alert(thrownError);}
});
});
});
</script>

Реализация HTML на основной странице:

<input type="number" min="0" max="999" id="quant-<?php echo $item->id;?>" style="width: 104px;" value="<?php echo $item->orderitem_quantity; ?>" onchange="document.getElementById('div-<?php echo $item->id;?>').style.display='';document.getElementById('quant-<?php echo $item->id;?>').style.backgroundColor='#FFA9A9';">
<div style="display:none;position: relative;float: right;top: 8px;" id="div-<?php echo $item->id;?>" >
<a style="top: -4px;position: relative;" href="#" class="btn_ex_save" id="exs-<?php echo $item->id;?>">
<img src="/images/save.gif" />
</a>
</div>

Реализация обработки запроса на странице заголовков  view.html.php:

if(isset($_POST["recordToEx"])){
$idToUpd = str_replace('-','',filter_var($_POST["recordToEx"],FILTER_SANITIZE_NUMBER_INT));
$ex = str_replace($idToUpd.'-','',filter_var($_POST["recordSTR"],FILTER_SANITIZE_STRING));
if (trim($ex) != '')
         {   $ex = $ex.'|';
              $query =htmlspecialchars("update #__table set txt ='".$ex."' where id='".$idToUpd."'");
              $db->setQuery($query);
              if(!$db->query())
                    {
                         header('HTTP/1.1 500 '.JText::_('Ошибка ID = '.$idToUpd.' '.$db->stderr()));
                         exit();
                    }
         }
exit();
}

Как с нами связаться

По всем вопросам пишите  

OnLine заказ

Отправить сообщение

Нажимая на кнопку «Отправить сообщение», я соглашаюсь:
* с условиями публичной оферты
* обработку моих персональных данных


RAD компоненты

  • Точный рейтинг материалов k2


    Стоимость 500

  • Статистика К2 (Joomla 3x)


    Стоимость 1500

  • Экспорт в яндекс маркет YML формат


    Стоимость 1000

  • Акции К2 store


    Стоимость 1200

  • QR code в K2 и k2_store


    Стоимость 300

  • Мониторинг здоровья


    Стоимость 700

  • Модуль отзывов - яндекс маркет, фламп


    Стоимость 500

  • Таблица замены текста по тегу


    Стоимость 700

  • ЖКХ паспорт дома


    Стоимость 5000

  • Плагин обновления доп.поля К2


    Стоимость 200

  • K2_store купоны


    Стоимость 1500

  • K2_store сопутствующий товар


    Стоимость 1000

  • Плагин Scroll to Top Mobile Detect


    Стоимость 500

  • Водяной знак, торговая марка


    Стоимость 1500

  • JShopping поиск товара по атрибутам


    Стоимость 1000

  • Расписание занятий


    Стоимость 1500

  • Плагин оплаты K2 store Форма ПД-4 Сбербанк


    Стоимость 700

  • Доска объявлений


    Стоимость 1500

  • Расширенные заказы JoomShopping


    Стоимость 2500

  • Галерея изображений


    Стоимость 1000

  • Калькулятор прибыли


    Стоимость 500

  • Назначение группы пользователя от суммы заказа VM3


    Стоимость 1200

  • Автоматические купоны по сумме заказов VM3


    Стоимость 1200

Please publish modules in offcanvas position.