Liebe Joomla-Experten,
nach einigen Wochen erfoglosen Versuchens bitte ich Euch um Rat. Ich habe eine Komponente, mit dem Backend bin ich ganz gut vorangekommen. Im Frontend werden nun Inhalte eines Datensatzes aus der Datenbank angezeigt und einige Buttons, die auf andere Datensätze (ID´s) verweisen. Beim Klick auf einen Button soll der neue Datensatz angezeigt werden. Ich habe schon gelernt, dass so etwas mit Ajax geht und auch einige Erläuterungen gefunden, aber ich schaffe es nicht und verstehe es auch noch nicht wirklich. Ich schaffe es schon eine mit der Datensatz-ID zu füllen, aber nicht diesen Datensatz zu laden.
Dies ist die default.php:
defined('_JEXEC') or die('Restricted access');
?>
<form action="index.php?option=com_unit&task=abc&format=ajax
<?php foreach ($this->unitstep as $unitstep) : ?>
<div class="container-fluid">
<div class="row-fluid">
<div class="span9">
<p><?php echo $unitstep->content; ?></p>
</div>
<div class="span3">
<a id="IA1" class="btn btn-outline-primary btn-block" role="button" type="submit"><?php echo $unitstep->interact1text; ?></a>
<a id="IA2" class="btn btn-outline-primary btn-block" role="button" type="submit"><?php echo $unitstep->interact2text; ?></a>
<a id="IA3" class="btn btn-outline-primary btn-block" role="button" type="submit"><?php echo $unitstep->interact3text; ?></a>
<a id="IA4" class="btn btn-outline-primary btn-block" role="button" type="submit"><?php echo $unitstep->interact4text; ?></a>
<a id="IA5" class="btn btn-outline-primary btn-block" role="button" type="submit"><?php echo $unitstep->interact5text; ?></a>
<p id="demo"></p>
<script>
document.getElementById("IA1").onclick = function() {FunctionIA1()};
document.getElementById("IA2").onclick = function() {FunctionIA2()};
document.getElementById("IA3").onclick = function() {FunctionIA3()};
document.getElementById("IA4").onclick = function() {FunctionIA4()};
document.getElementById("IA5").onclick = function() {FunctionIA5()};
function FunctionIA1() {
<?php $gotostep = $unitstep->interact1gotostepno ?>
document.getElementById("demo").innerHTML = "Du willst zu Schritt " + <?php echo $gotostep ?>;}
function FunctionIA2() {
<?php $gotostep = $unitstep->interact2gotostepno ?>
document.getElementById("demo").innerHTML = "Du willst zu Schritt " + <?php echo $gotostep ?>;}
function FunctionIA3() {
<?php $gotostep = $unitstep->interact3gotostepno ?>
document.getElementById("demo").innerHTML = "Du willst zu Schritt " + <?php echo $gotostep ?> ;}
function FunctionIA4() {
<?php $gotostep = $unitstep->interact4gotostepno ?>
document.getElementById("demo").innerHTML = "Du willst zu Schritt " + <?php echo $gotostep ?> ;}
function FunctionIA5() {
<?php $gotostep = $unitstep->interact5gotostepno ?>
document.getElementById("demo").innerHTML = "Du willst zu Schritt " + <?php echo $gotostep ?> ;}
</script>
</div>
</div>
</div>
<?php endforeach; ?>[/tt]
controller.php auch schön nach Anleitung:
defined('_JEXEC') or die;
class UnitController extends JControllerLegacy
{
//function for call the task out of the URL,
public function abc()
{
// Set view
$this->input->set('view', 'Abc');
parent::display();
}
}
und eine view.raw.php (brauche ich eine zweite View?)
<?php
defined('_JEXEC') or die;
jimport('joomla.application.component.view');
class unitViewAbc extends JViewLegacy
{
function display($tpl = null)
{
parent::display($tpl);
}
}
Ich würde vermuten dass auch am Model etwas gemacht werden muss, habe aber nichts dazu gefunden.