我是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}`
答案 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
中,如上所示。还有一点需要注意,你已经将代码包装在一个函数中,所以一定要实际调用函数,否则代码不会运行。如果你想简单地想要在没有任何触发器(例如点击)的情况下运行代码,那么就把代码带到函数之外。
希望这有帮助