Verschiedene Datensätze über Button laden

  • 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:

    Spoiler anzeigen


    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:

    Spoiler anzeigen


    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?)

    Spoiler anzeigen


    <?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.

  • Hallo astrid,

    ja kenne ich, interessant wäre vermutlich das Kapitel 19 (Aktualisierungsfunktion Frontend), das ist aber leider leer. Im Backend habe ich das Problem nicht, dort rufe ich einzelne Datensätze im Bearbeitungsmodus in einem Formular auf.

    Ich versuche die Frage zu konkretisieren: wie bekomme ich eine vom Benutzer im Frontend festgelegte Variable (bei mir über den Klick auf einen Button) mit Ajax dazu, als Filterkriterium für das Model bzw. View zu greifen?

  • Hallo zusammen,
    ich habe das nun mit Submit-Buttons hinbekommen. Das lädt zwar die Seite neu, für den Anfang tuts das aber...Das Thema wäre daher erledigt, danke für die Unterstützung.