Anzeige

PHP - Funktion erstellen welche ihren Inhalt ändert


Slyrs

Grünschnabel
#1
Hallo liebe Community,

ich bin gerade dabei mir etwas PHP beizubringen und stehe vor einem Problem welches ich nicht lösen kann.

Hier einmal mein Code:

PHP:
<?php

// Hier erhalte ich meine Daten von der Datenbank
$testItems = $db->getAllItems();
// $loeffel = $db->getLoeffelItems();

// Kleine Auswahl welche die Value übergibt
echo "<h1>".'Choose betweeen different items'."</h1>";
    echo "<form action='index.php?section=home'method='post'>";
        echo "<label>".'Components: ';
            echo "<select name='component'>";
            echo "<option selected value='default'>".'Please select'."</option>";
                echo "<optgroup label='Test-Components'>";
                    echo "<option value='test_item'>" . 'TEST ITEM' ."</option>";
                echo "</optgroup>";
            echo "</select>";
        echo "</label>";
        echo "<input type='submit' name='' value='Show'>";
    echo "</form>";


// hier ist das eigentliche Problem 
function testComp(&$testItems) {

    $Inhalt = $_POST["component"];

    if($Inhalt == $testItems) // Hier komme ich nicht weiter. Ich weiß nicht wie ich diesen Vergleich anstoßen kann.

    foreach($$Inhalt as $singlee) {
        echo "<div'>";
        echo "<article>";
            echo "<h1>". $singlee['titel']. "</h1>";
            echo "<p>". $singlee['beschreibung']. "</p>";
        echo "</article>";
        echo "</div>";
        echo $singlee;
    }
}


// Erhält die Value und wertet aus
switch ($_POST['component']) {
    case "test_item":

        echo "<h1>".'Test Item:'."</h1>";
        foreach($testItems as $testItem) {
            echo "<div>";
            echo "<article>";
                echo "<h1>". $testItem['titel']. "</h1>";
                echo "<p>". $testItem['beschreibung']. "</p>";
            echo "</article>";
            echo "</div>";
        }

    break;
        
    case "default":
        echo "<p>".'Please select something!'."</p>";
    break;
}
?>
Der Code an sich läuft, Auswahl wird getroffen und value wird übergeben, switch case erhält diese und geht in den entsprechenden Case.
Soweit so gut, da ich vorhabe in Zukunft mehr Items zu erstellen wollte ich den Inhalt in eine Funktion auslagern. (siehe "testComp()").
Die Funktion sollte eigentlich anhand der übergebenen / erhaltenen Value erkennen Welches Item ausgewählt ist und dann die Ausgabe anpassen.

Beispiel: Ich füge das Item Löffel hinzu: Nun sollte die Funktion erkennen -> okay es wurde Löffel ausgewählt nun passe ich die Ausgabe an.

Ich habe mich schon an einigen Sachen probiert, Foren durchwühlt, aber leider kein Erfolg verbuchen können.

Ich bin für jeden Ratschlag, Idee oder anderes offen.

Bereits vielen Dank!
 

EuroCent

KlappStuhl 2.0
#2
Ist dass hier in Zeile: 29 Korrekt "$$Inhalt".
Ich glaube nicht.

Lass dir doch mal bitte via
PHP:
<?php
printf('<pre>%s</pre>', print_r($Inhalt, true));
?>
ausgeben und schau ob du Werte überhaupt bekommst. :)

ggf. an Datei Anfang einen error_reporting(E_ALL); hinterlegen. :)
 

Slyrs

Grünschnabel
#3
Hi EuroCent,

danke für die Antwort. in $Inhalt ist die Value="test_item". Diese bekomme ich und kann sie erfolgreich ausgeben. Ich versuche hier derzeit eine Funktion zu erstellen, welche je nach Value input eine andere Ausgabe erstellt.

Bsp:

jetziger value Input ist: test_item

Ich versuche nun den gleichen output zu bekommen wie im switch case ohne das ich die Variablen in Zeile 29, 32 und 33 ändern muss.

Ich möchte sozusagen die Funktion für mehrere Value Inputs nutzbar machen. Gibt es hier eine Möglichkeit dies zu realisieren?
 
Anzeige

Neue Beiträge

Anzeige