如何在“onclick”事件期间加载外部php文件


How to load an external php file during an “onclick” event?

我试图在选项卡上加载谷歌地图以缩短页面加载。我在控制台中没有收到任何错误。只是空的div <div class="gmap"></div>,而它应该是这样的:<div class="gmap"><iframe style="border: none;" width="350px" height="150px" src="http://maps.google.com/maps?myadress"></iframe></div>。脚本似乎不是在点击时执行的。

我做错了什么?我需要提一下,我还在学习。

这就是映射脚本的工作方式:JSFIDDLE

map.php

<?php
define( '_JEXEC', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../../../..' ));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe = JFactory::getApplication('site');
jimport( 'joomla.application.module.helper' );
$module = JModuleHelper::getModule('mod_module');
$moduleParams = new JRegistry();
$moduleParams->loadString($module->params);
?>
<div class="gmap" data-address="" data-lang="auto" data-width="350px" data-height="150px" data-zoom="12" data-bubble="false" data-pin-size="1" data-output="iframe"></div>

jquery.google-maps.js

// entire script above
// autoload maps
jQuery(function($) { $('.gmap').googleMaps(); });

第一次尝试

jQuery(document).ready(function($) {
    $(".tab").click(function() {
        $.getScript(window.location.origin + "jquery.googlemap.js", function() {
            $(".div-inner").load("map.php");
        });
    });
});

第二次尝试

我也尝试过这种方式,但没有效果:

jQuery(document).ready(function($) {
    $(".tab").click(function() {
        $.getScript(window.location.origin + "/jquery.googlemap.js", function() {
            $.ajax({
                type: "GET",
                cache: false,
                url: '/map.php',
                success: function(data) {
                    $('.div-inner').html(data);
                }
            });
        });
    });
});

我找到了一个解决方案。谢谢

jQuery(document).ready(function($) {
  $(".tab").one('click', function() {
    $(".div-inner").append('<div class="gmap" data-address="New York"></div>');
    $.getScript(window.location.origin + '/jquery.googlemap.js', function() {
      $('.gmap').googleMaps();
    });
  });