#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.