如何从 joomla 插件提交 ajax 调用

How to submit an ajax call from joomla plugin

我有一个困扰我的挑战。 问题是 - 我正在创建一个插件,该插件正在对该插件中的另一个文件进行 AJAX 调用。 Joomla 似乎阻止我访问该文件。

我需要 POST 到一个文件,该文件包含来自 SOAP 调用的 returns 数据。

我从这一行调用文件:

$html .= '$.post("search.php", { address: $(\'#address\').val(), zipcode: $(\'#zipcode\').val() },';

我也尝试了相对路径、绝对路径和服务器路径——Joomla 不喜欢它。但是我不记得也没有找到正确的方法。

该文件与输出上述代码的插件位于同一文件夹中。

这是我的插件输出的完整 javascript 函数:

$html .= '<script type="text/javascript">';

    $html .= 'function searchParcels()';
    $html .= '{';
        $html .= '$.post("search.php", { address: $(\'#address\').val(), zipcode: $(\'#zipcode\').val() },';
            $html .= 'function(data) {';

                $html .= 'var shops = $.parseJSON(data);';
                $html .= '$(\'#shops_output\').html(\'\');';

                $html .= 'for(i in shops)';
                $html .= '{';
                    $html .= 'var html = \'<p>\'';
                    $html .= '+ shops[i][\'CompanyName\'] + \'<br>\'';
                    $html .= '+ shops[i][\'Streetname\'] + \'<br>\'';
                    $html .= '+ shops[i][\'ZipCode\'] + \' \' + shops[i][\'CityName\'] + \'<br>\'';
                    $html .= '+ shops[i][\'Telephone\'] + \'<br>\'';
                    $html .= '+ \'</p>\';';
                    $html .= '$(\'#shops_output\').append(html);';
                $html .= '}';

            $html .= '});'; 
    $html .= '}';

$html .= '</script>';

非常感谢任何帮助:-) 谢谢

请检查 this post 如何使用 Joomla 的 ajax 界面(您似乎没有使用它)。这比您描述的方法更容易、更清洁(也更标准)。您需要做的就是创建 module/plugin(确保您有一个以 "Ajax" 结尾的函数名称),然后从您的 Joomla 网站上的任何地方发出正确的调用(确保您使用 URL 网站上描述的模式)。