使用通过Joomla中的Sourcerer实现的Jquery将数据从文件加载到DIV

时间:2014-03-18 08:44:56

标签: php jquery joomla

我是joomla的新手。我正在使用sourcerer在ARTICLES上实现php和javascript。是否可以使用Jquery在文章中将数据加载到DIV。 调用此函数不会产生任何内容

{source}
<?php
$db =& JFactory::getDBO();

$document = JFactory::getDocument();
$document->addScript(JURI::root( true ).'/media/system/js/jquery-1.8.2.min.js');

echo'<script language="javascript" type="text/javascript">
function Myfunction()
{    
$.get( "/location/sample.txt", function( data ) {
alert( "Data Loaded: " + data );
});

} </script>';

?>
{/source}

似乎问题在于触发。应该通过下拉来触发它。简化它只是提醒。善意的协助。

`{source}
<?php
 $db =& JFactory::getDBO();

$doc = JFactory::getDocument();
$doc->addScript(JURI::root( true ).'/media/system/js/jquery-1.8.2.min.js');

$doc->addScriptDeclaration('
     $(document).ready(function(){function Myfunction(){alert("here");}

});
  '); 

echo '<select id="select1" name="ctlselect" onchange="Myfunction()">';
echo '<option value="1"> Option1 </option> ';                             
echo '<option value="2"> Option2 </option> '; 

echo '<option value="3"> Option3 </option> ';                           
echo '</select>';
?>
{/source}`

1 个答案:

答案 0 :(得分:1)

你回复了一些javascript,但它需要添加到头部。这就是Joomla的API派上用场的地方。

{source}
<?php
  $db = JFactory::getDbo();

  $doc = JFactory::getDocument();
  $doc->addScript(JUri::root( true ).'/media/system/js/jquery-1.8.2.min.js');

  $doc->addScriptDeclaration('
     $(document).ready(function() {
       function Myfunction(){    
          $.get( "' . JUri::root() . 'path/to/location/sample.txt", function( data ) {
             alert( "Data Loaded: " + data );
          });    
       }
     });
  ');   
?>
{/source}

如上所示,我还建议在调用文件时使用JUri::root()来定义站点的根目录。另外,当您使用jQuery Ajax时,您需要将代码包装在document.ready中,如上所示。还有一点需要注意,你已经将代码包装在一个函数中,所以一定要实际调用函数,否则代码不会运行。如果你想简单地想要在没有任何触发器(例如点击)的情况下运行代码,那么就把代码带到函数之外。

希望这有帮助