Ankündigung

Einklappen
Keine Ankündigung bisher.

Ausgabe wird an die falsche Stelle includet.

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ausgabe wird an die falsche Stelle includet.

    Hallo

    Habe ein großes Problem. Ich hoffe, dass jemand etwas Zeit findet, um mir weiter zu helfen.

    Hier die Miniaturausgabe des Problems. Hier funktioniert alles.
    Code:
    <?php
    
    	function html_aufrufen($ausgabe) {
    		// Hier wird der $inhalt gesetzt !
    		$inhalt = html($ausgabe);
    	}
    
    	function html($ausgabe) {
    		echo $ausgabe;
    	}
    
    	// start - durch eine Externe Datei wird action == inhalt ausgefuehrt !
    	if($_GET["action"] == 'inhalt') {
    		$ausgabe = "hallo";
    		html_aufrufen($ausgabe);
    	}
    	else {
    	}
    ?>
    <html>
    	<body>
    		<div>
    			<div><?php include($inhalt); ?></div>
    		</div>
    	</body>
    </html>
    Hier findet ihr das gleiche in groß.
    Nicht erschrecken. Ich habe die ganze Quelle gepostet.
    http://nopaste.php-q.net/167658

    Die Funktion "html_aufrufen($ausgabe)" findet ihr in der Zeile 48
    Die Funktion "html($ausgabe)" befindet sich in der Zeile 96
    if($_GET["action"] == 'inhalt') befindet sich in der Zeile 330 und der Aufruf der Methode in 334
    <?php include($inhalt); ?> beindet sich in der Zeile 439

    Screenshot soll das Problem verdeutlichen:
    http://www.aaron.de/test/frage.png

    An der Stelle von "Willkommen !!!" sollen die checkboxen plaziert werden.
    Die Checkboxen sind in der Miniaturausgabe "$ausgabe = "hallo";"
    Die Checkboxen werden nicht innerhalb von Inhalt dargestellt.

    Gruß
    Aaron


  • #2
    Hi,

    dort, wo Du den Content für die Seite generierst gibst Du ihn bereits mit echo aus. Wenn Du ihn später verwenden willst, speicher ihn in einer Veriable und gib ihn per return zurück.

    Dort wo der Include-Aufruf stattfindet muß dann eben stattdessen der Inhalt der Variablen ausgegen werden.

    Kommentar


    • #3
      Hi MarkusHausB

      Wie soll ich das Ganze in eine Variable speichern ?
      Stehe imom bissel auf dem Schlauch.

      Gruß
      Aaron

      PHP-Code:
      <?php
      function generiere_html($fragestellung$level$naechste_frage_antworten$naechste_frage_antworten_id$anzahl_antworten) {

          
      // Html Seite mit Frage + Antworten werden erzeugt
          // Frage als Klartext statt 'id_frage'
          
      echo "$fragestellung";
          echo 
      "<table>";
          echo 
      "<form method='post' action='index.php?action=frage_anzeigen&level_auswahl=$level'>";
          
      // Antworten + checkboxen werden erzeugt. 
          
      for($i=0$i<=sizeof($naechste_frage_antworten)-1$i++) {
              echo 
      "<tr><td><input type=checkbox name='antwort$i'></td><td>$naechste_frage_antworten[$i]</td></tr>";
              echo 
      "<tr><td><input type=hidden name='id_antwort$i' value=$naechste_frage_antworten_id[$i]</td></tr>";
              echo 
      "
      "
      ;
          }
          echo 
      "</table>";
          echo 
      "<input type=hidden name=anzahl_antworten value=$anzahl_antworten>
      "
      ;
          echo 
      "<input type=submit value=weiter></input>";
          echo 
      "</form>";
      }
      ?>

      Ich hatte das Ganze so in der Variable gespeichert:
      Code:
      $inhalt = generiere_html($fragestellung, $level, $naechste_frage_antworten, $naechste_frage_antworten_id, $anzahl_antworten);


      "Wenn Du ihn später verwenden willst, speicher ihn in einer Veriable und gib ihn per return zurück. "

      Das habe ich nicht ganz verstanden.

      Kommentar


      • #4
        Na anstatt

        PHP-Code:
        <?php
        function printText()
        {
          print 
        "Zeile 1";
          print 
        "Zeile 2";
        }

        // machst du einfach

        function returnText()
        {
          
        $content "Zeile 1";
          
        $content .= "Zeile 2";
          return 
        $content;
        }
        ?>
        print und echo senden ja sofort an den Browser, wenn du das ganze in eine Variable packst und returnst, dann kannst du das Ding ausgeben wann du willst und nicht wann du die Funktion aufrufst.

        Kommentar


        • #5
          Hi..

          muss nochmal dumm fragen.
          Wie sieht das ganze bei der Schleife aus. ?!
          Die Schleife macht mir noch große probleme.

          PHP-Code:
          <?php
              
          for($i=0$i<=sizeof($naechste_frage_antworten)-1$i++) {
                  echo 
          "<tr><td><input type=checkbox name='antwort$i'></td><td>$naechste_frage_antworten[$i]</td></tr>";
                  echo 
          "<tr><td><input type=hidden name='id_antwort$i' value=$naechste_frage_antworten_id[$i]</td></tr>";
                  echo 
          "
          "
          ;
              }
          ?>
          PHP-Code:
          <?php
              $html 
          "$fragestellung";
              
          $html "<table>";
              
          $html "<form method='post' action='index.php?action=frage_anzeigen&level_auswahl=$level'>";
              
          // Antworten + checkboxen werden erzeugt. 
              
          for($i=0$i<=sizeof($naechste_frage_antworten)-1$i++) {
                  echo 
          "<tr><td><input type=checkbox name='antwort$i'></td><td>$naechste_frage_antworten[$i]</td></tr>";
                  echo 
          "<tr><td><input type=hidden name='id_antwort$i' value=$naechste_frage_antworten_id[$i]</td></tr>";
                  echo 
          "
          "
          ;
              }
              
          $html "</table>";
              
          $html "<input type=hidden name=anzahl_antworten value=$anzahl_antworten>
          </table>"
          ;
              
          $html "<input type=submit value=weiter></input>";
              
          $html "</form>";

          return 
          $html;
          ?>

          Kommentar


          • #6
            Das hier hat das Problem noch nicht lösen können.
            Die Ausgabe findet immer noch oberhalb des layers statt.

            PHP-Code:
            <?php
            $html 
            "$fragestellung";
            $html.= "<table>";
            $html.= "<form method='post' action='index.php?action=frage_anzeigen&level_auswahl=$level'>";
                
            // Antworten + checkboxen werden erzeugt. 
                
            for($i=0$i<=sizeof($naechste_frage_antworten)-1$i++) {
                    
            $html.= "<tr><td><input type=checkbox name='antwort$i'></td><td>$naechste_frage_antworten[$i]</td></tr>";
                    
            $html.= "<tr><td><input type=hidden name='id_antwort$i' value=$naechste_frage_antworten_id[$i]</td></tr>";
                    
            $html.= "
            "
            ;
                }

            $html.= "</table>";
            $html.= "<input type=hidden name=anzahl_antworten value=$anzahl_antworten>
            </table>"
            ;
            $html.= "<input type=submit value=weiter></input>";
            $html.= "</form>"

            return 
            $html;
            ?>

            Kommentar


            • #7
              Der Beitrag wurde verschoben, wegen...
              ... Postings im falschen Forum. Bitte beim nächsten Mal darauf achten..

              Bemerkung:
              Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen. Dazu: http://www.phpfriend.de/forum/viewtopic.php?t=21515

              moved to PHP - Anfänger
              mod = master of disaster

              Kommentar

              Lädt...
              X