Antworten auf deine Fragen:
Neues Thema erstellen

Website Navigation per PHP Array

sunbrust

Noch nicht viel geschrieben

Hallo Leute,

ich habe noch einmal eine Frage. Ich hoffe, dass ich das gut beschrieben bekomme.

Die Navigation in meinem Projekt ist derzeit folgendermaßen eingebunden und funktioniert auch einwandfrei

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<?php
include("head.inc.html");
?>
<?php
include("menu.inc.html");
?>
<div id="content">
    <div id="main">
<?php

$files = array('home'      => 'home.html',
               'site1'      => 'ordner/site1.html',
               'site2' => 'ordner/site2.html');

if(!isset($_GET['seite']))
  $_GET['seite'] = 'home';

if (array_key_exists($_GET['seite'], $files))
  include $files[$_GET['seite']];
else
  include $files['home'];
?>
</div>
<?php
include("sidebar.inc.php");
?>

Wenn ich nun einen Link setze, per ?seite=blabla, öffnet sich der Inhalt ja automatisch im Container "main".
Ich habe in der sidebar Datei ein Umfrageformular und hätte auch gerne, dass die Ergebnisse auch in dem sidebar-container angezeigt werden und nicht im main-container.

Könnte mir jemand einen Tipp geben, ob und wie man so etwas umsetzen könnte?
Oder vielleicht einen Link wo man so etwas nachlesen kann?

Gruß
 

Duddle

Posting-Frequenz: 14µHz

Je nachdem, wie deine Sidebar strukturiert ist und wie das Formular umgesetzt ist, gibt es da mehrere Ansätze.

Falls die in einem iframe sitzt, dann wird jeder Link darin automatisch im gleichen iframe gefolgt. Falls nicht, musst du im Link bzw. im Formular genügend Informationen übergeben, damit du unterscheiden kannst was wie angezeigt wird. Zum Beispiel könnte dein Link "?seite=blabla&sidebar=123" sein. Oder du prüfst, ob das Formular abgeschickt wurde (d.h. das $_POST-Array bestimmte Informationen enthält) und passt die Ausgabe an.

Alternativ könntest du AJAX auf das Problem werfen: du schickst das Formular nicht normal ab, sondern lässt per AJAX die Daten absenden, das Ergebnis holen und die Sidebar anpassen.


Duddle
 

sunbrust

Noch nicht viel geschrieben

Danke Duddle für deine Antwort.
Die Sidebar ist kein iframe.

Hier mal die Umfrage

Code:
        <div class="sidebar">
        <form action="?seite=umfrage.php" method="post">
        <table width="100%" style="height:100%" border="0" cellspacing="6" cellpadding="10">
            <tr>
                <td colspan="2"><b>Frage</b></td>
            </tr>
            <tr>
                <td><input type="radio" name="Umfrage1" value="1"></td>
                <td>Antwort1</td>
            </tr>
            <tr>
                <td><input type="radio" name="Umfrage1" value="2"></td>
                <td>Antwort2</td>
            </tr>
            <tr>
                <td><input type="radio" name="Umfrage1" value="3"></td>
                <td>Antwort3</td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" name="submit" value="Abstimmen"></td>
            </tr>
        </table>
        </form>  
        </div>

Was müsste ich denn in der sidebar-Datei machen damit ?seite=blabla&sidebar=123 funktioniert?

Das ist eigentlich genauso etwas, wie ich es gerne haben würde, aber ich weiß nicht wie ich das hinbekomme.

Einfach im array der Index Datei angeben langt ja nicht.

Müsste ich dann, wenn es mal funktioniert bei "form action="?seite=blabla&sidebar=123" setzen?

Ja oder?

Danke dir schon einmal für deine Hilfe

Gruß
 

Duddle

Posting-Frequenz: 14µHz

Was müsste ich denn in der sidebar-Datei machen damit ?seite=blabla&sidebar=123 funktioniert?
Naja, so wie du den Parameter seite auswertest, wertest du eben den Parameter sidebar aus.
Müsste ich dann, wenn es mal funktioniert bei "form action="?seite=blabla&sidebar=123" setzen?
Wie gesagt, das ist eine Möglichkeit. Schicker wäre aber bei einem Formular zu prüfen, ob z.B.
PHP:
$_POST['submit']
gesetzt ist und es dann entsprechend zu verarbeiten.


Duddle
 

sunbrust

Noch nicht viel geschrieben

Hi Duddle,

habe mich mal daran versucht, es funktioniert auch. Nur springt die Seite immer automatisch auf die Startseite zurück sobald ich in der Sidebar auf submit drücke.
Das wollte ich eigentlich nicht.

Nun habe ich versucht die aktuelle URL per "$_SERVER['PHP_SELF'];" auszulesen und dann eben &sidebar=... dranzuhängen. Da kommt das gleiche Ergebnis bei rum.

Der Code

Sidebar.inc.php

Code:
        <div class="sidebar">
    <?php

                    if(isset($_POST['submit'])) {
                    include ('umfrageergebnis.php');
                    }
                    else {
                    include ('umfrageformular.php');
                    }



?>
        </div>

umfrageformular.php

Code:
<form action="?s=<?php $_SERVER['PHP_SELF'];?>&sidebar=umfrageergebnis" method="post">

Da wird wahrscheinlich einiges falsch sein, aber Übung macht den Meister :)
 

Duddle

Posting-Frequenz: 14µHz

PHP:
<form action="?s=<?php $_SERVER['PHP_SELF'];?>&sidebar=umfrageergebnis" method="post">
PHP:
$_SERVER['PHP_SELF']
ist eine Variable. Du stellst nichts mit der Variable an (lies: gibst sie nicht aus), also passiert da nichts.
Auch wird 'PHP_SELF' dir nicht das korrekte Ergebnis liefern, weil du damit den Dateinamen bekommst. Zusätzlich willst du scheinbar beide vorgeschlagenen Methoden kombinieren, was wenig sinnvoll ist. Entscheide dich für eine und setz sie um.


Duddle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.564
Beiträge
1.538.064
Mitglieder
67.487
Neuestes Mitglied
MichaelSEivy
Oben