1

Ajax と Joomla フレームワークを一緒に使用する方法を理解するのにまだ問題があります。アクセスできるJoomlaコンポーネントを作成しました:

index.php?option=com_mycomponent

私はAjaxでJqueryを使用していcomponents/com_mycomponent/views/mycomponent/tmpl/default.phpます:

<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
?>
<html>
<head>
  <title>Ajax with jQuery Example</title>

<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/JavaScript">
  $(document).ready(function(){
    $("#generate").click(function(){
  $("#quote p").load("components/com_mycomponent/views/mycomponent/tmpl/script.php");

    });
  });
  </script>
</head>
<body>
  <div id="wrapper">
    <div id="quote"><p> </p></div>
    <input type="submit" id="generate" value="Generate!">
  </div>
</body>
</html>

次に、script.php ファイルに次のように記述します。

<?php  
$user =& JFactory::getUser();
echo "This is the user: ".$user;
?> 

script.php に Joomla フレームワーク コードを何も配置しなければ、問題なく動作します。しかし、これを行う目的は、Joomla フレームワークを使用する必要があるため、コンポーネントを作成することの要点です。Class 'JFactory' not foundしかし、エラーが発生しないように、Joomla コンポーネントをどのように構成する必要があるのか​​まだわかりませんか?

4

2 に答える 2

1

これを行う正しい方法は、コンポーネントのcontroller.phpファイルにタスクを追加することだと思います。

http://docs.joomla.org/Adding_AJAX_to_your_component

于 2012-08-01T15:35:16.363 に答える
0

結局あまり時間はかかりませんでした。必要なファイルは default.php だけなので、そこにある script.php とその他の奇妙なファイルを削除できます。

Default.php

<?php
defined('_JEXEC') or die('Restricted access');

//$document =& JFactory::getDocument();
//$document->addScript("https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js");
$user =& JFactory::getUser();
?>

<div id="wrapper">
    <div id="quote" style="display:none; padding-bottom:10px;">
        <?php 
          echo "<p>This is your username: " . $user->username . "</p>"; 
          echo "<p>This is your realname: " . $user->name . "</p>"; 
          echo "<p>This is your user ID: " . $user->id . "</p>";
        ?>
    </div>
    <input type="submit" id="generate" value="Generate!">
</div>

<script type="text/javascript">
$(document).ready(function(){
     $("#generate").click(function(){
          $("#quote").show();
     });
});
</script>

コード内の jquery 参照をコメント アウトしました。widgetkit が既にそのコピーを読み込んでいるためですが、念のためそのままにしておきました。

別のファイルをロードする代わりに、#quotediv タグを非表示にし、ボタンをクリックすると、その中のデータとともに表示されます。これには、念のため追加realnameしました。user ID

お役に立てれば。

よろしく

于 2012-08-01T03:32:33.600 に答える