отправить запрос с Javascript в default.php в вспомогательный файл, Joomla

#javascript #php #asynchronous #joomla

Вопрос:

У меня есть полностью работающий модуль в Joomla, но я борюсь с последней частью, которая отправляет значение из Javascript в моем default.php файл в вспомогательный файл, где он будет использоваться в sql-запросе и вернет результаты. Все до этого момента работает идеально, и если я просто жестко закодирую значение в SQL, оно вернет то, что мне нужно default.php файл.

Моя проблема в том, что когда вызывается функция JS getApi и я устанавливаю входное значение 12345, я также хочу отправить это значение 12345 в свою функцию helpepr, называемую getStores

Как я могу правильно отправить это значение и асинхронно вернуть его в реальном времени?

helper.php

 <?php

class modTestHelper
{

public static function getStores($zip)
{
    $db = JFactory::getDBO();
    $user = JFactory::getUser();
    
    $app = JFactory::getApplication();
    $lang = JFactory::getLanguage();
    $date = JFactory::getDate();
    $now = $date->format('Y-m-d');
    
    
    $query = 'SELECT
            name,
            phone,
            address,
            city,
            state,
            zip,
            country,
            url,
            logo,
            lat,
            lng

            from #__loc_table
            where published = 1
            AND zip ="'.$zip.'"';
    
    
    $db->setQuery($query);
    $item=$db->loadObjectList();
    $stores = [
        'type' => 'FeatureCollection',
        'features' => array_map(function($i) {
            return [
                'type' => 'Feature',
                'geometry' => [
                    'type' => 'Point',
                    'coordinates' => [
                        $i->lat,
                        $i->lng
                    ]
                ],
                'properties' => [
                    'storeImage' => $i->logo,
                    'storeName' => $i->name,
                    'phoneFormatted' => $i->phone,
                    'address' => $i->address,
                    'city' => $i->city,
                    'country' => $i->country,
                    'postalCode' => $i->zip,
                    'state' => $i->state
                ]
            ];
        }, $item)
    ];                      
            
    return json_encode($stores);
}
}
 

mod_test.php

 <?php 
 defined('_JEXEC') or die;
require_once dirname(__FILE__) . '/helper.php';

$test = modTestHelper::getStores();


require JModuleHelper::getLayoutPath('mod_test', $params->get('layout', 'default'));
?>
 

default.php

     <script type="text/javascript">

          function getApi() {
             var zip = '12345';
             div.value = var;
          }

     </script>
 

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

1. Пожалуйста, задавайте свои вопросы по Joomla на Joomla Stack Exchange.