Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Menu Navigation Antworten
Menu Navigation

Jath
Pixelschubser


Beiträge: 1


Hallo,

mein Problem wurde hier im Forum scheinbar schon öfters behandelt, aber ich steige da, trotz daß ich die ganzen Beiträge durchgegangen bin, nicht wirklich durch.

Also ich möchte folgendes realisieren:

Ich habe eine Datei namens index.php, welche die Startseite darstellt. Oben soll man mittels "a href" einige Links anklicken können (bsp einen Link auf die Datei generator.php) und diese generator.php soll da in der index.php angezeigt werden. Quasi so, als ob ich Frames verwenden würde, aber ich muß eben auf Frames leider verzichten.

In der index.php muß meineswissens nun oben folgendes stehen:

1:
<a href="index.php?action=generator">Generator</a>


Irgendwo weiter unten wird dann der php-Code ausgeführt, an welcher Stelle dann die generator.php angezeigt werden soll.

Ich dachte mir sowas ähnliches wie:

1: 
2: 
3: 
4: 
5:
<?php
if (action == 'generator') {
include('generator.php')
}
?>


...oder so ähnlich. Soviel ich auch mitbekommen habe, dürfen in der generator.php keine html-Tags stehen, oder kann ich dort getrost doch html-code einfügen? ... weil ich würde in der generator.php gerne tabellen in html anlegen, in welchen dann der php-code ausgeführt wird.

Vielleicht könnte ja jemand mal so ein funktionierendes Beispiel posten, wäre für jede Hilfe dankbar.

Es reicht ja auch schon, wenn in der generator.php ein bißchen Text steht und dieser dann in der index.php ausgegeben wird.

Schonmal danke für eure Hilfe

Gruß Jath

Diese Nachricht wurde geändert von: Jath
  Profil   Editieren   Zitieren

HoRnominatoR
Mausakrobat


Beiträge: 165


die generator.php wird vollstaendig in die index.php uebernommen, sie ist dann bestandteil dessen, es gibt dann nurnoch die index.php. wenn du ein echo in der generator.php stehen hast, dann steht das echo nach dem includen auch in der index.php (solange sie ausgefuehrt wird). es verschmilzt zu einem programm.

1: 
2: 
3: 
4: 
5: 
6: 
7:
index.php
<?

include('generator.php');

?>


1: 
2: 
3: 
4: 
5: 
6: 
7: 
8:
generator.php

<?

echo '<p>irgendein htmlcode, oder einfach text</p>';

?>


wenn du jetz die index.php aufrufst, wird die generator.php eingebunden und der code zeile fuer zeile abgearbeitet. da ausser der generator.php nichts in der index.php vorhangen ist, wird einfach der text ausgegeben.

---
get OPERA for free

  Profil   E-Mail   Website   Editieren   Zitieren

Fuzzy
Pixelschubser


Beiträge: 6


Hallo,

Ich fange gerade erst an mit PHP und lese auch schon fleisig Bücher aber ich hab ein ähnliches Porblem.

Ich möchte eine seite machen (index.php) die auf 2 Teile geteilt ist ( Tabelle [linke spalte Menü, rechte Spalte content (?) bzw. dor wo dann alles angezeigt wird.])

so auf in der linken Spalte gebe ich als code ein:
1: 
2: 
3: 
4:
<table width="200" border="1">
  <tr>
    <td> <a href="index.php?action=spieler_neu">Neue Spieler</a>;
</td>

die datei "spieler_neu.php" habe ich gemacht und funktioniert (da wird es aber ein Problem geben dazu unten mehr)

in der rechten spalte gebe ich diesen code ein:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12:
   <td><?php
if (action == 'spieler_neu') {
include('spieler_neu.php');
}
?>

</td>
  </tr>
</table>

</body>
</html>


wenn ich die seite jetzt am server starte (http://localhost/Test/)
bekomme ich die index.php angezeigt (mit Tabelle und dem Link "Neue Spieler")

Wenn ich auf diesen drauf klicke springt die URL um auf "http://localhost/Test/index.php?action=spieler_neu" aber das war es dann auch schon.

Es wird nicht geladen gar nichts.

Jetzt habe ich gelesen das kein HTML in der "spieler_neu.php" datei stehen darf aber ich brauche dort ein Formular.

Code:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19:
<form action="spieler_neu.php" method="POST">
 Ihr Name: <input type="text" name="name" />
 

 Ihr Vorname: <input type="text" name="vorname" />
 

 Ihr Rückennummer: <input type="text" name="rnummer" />
 

 Sie sind Aktive: <input type="text" name="aktiv" />
<input type="submit">
</form>

<?php
include("admin/config.inc"); /* Einbinden der DB */
mysql_connect($host, $user, $pwd);
mysql_select_db ("db_statistik");


wie soll das jetzt gehen mit ECHO werde ich das Formular nicht ausgeben können oder?

Diese Nachricht wurde geändert von: Fuzzy
  Profil   E-Mail   Editieren   Zitieren

AlDorado
Pixelschubser


Beiträge: 18


Hallo.
Selbstverständlich kannst Du auch HMTL-Code in dieser Datei haben. Meines Erachtens hast Du nur einen kleinen Fehler in Deiner index.php, die es verhindert, dass die spieler_neu.php angezeigt wird. Und zwar hast Du stehen
if (action == 'spieler_neu') {
include('spieler_neu.php');
}

action ist hier allerdings eine Variable, die Du über
<a href="index.php?action=spieler_neu">Neue Spieler</a> sozusagen generiert hast.
Also müsste es heißen:
if ($action == 'spieler_neu') {
include('spieler_neu.php');
}

oder besser noch:
if ($_GET['action'] == 'spieler_neu') {
include('spieler_neu.php');
}


happy coding... Al.




---
---------------------------------------------
many ways out - webdesign & IT-Dienstleistungen
www.manywaysout.de
---------------------------------------------

  Profil   E-Mail   Website   Editieren   Zitieren

Fuzzy
Pixelschubser


Beiträge: 6


DANKE hat geklappt!
das mit dem $_GET werde ich NIE verstehen! *g*

  Profil   E-Mail   Editieren   Zitieren

AlDorado
Pixelschubser


Beiträge: 18


Hallo.
Im Prinzip ist es recht einfach.
In $_GET stehen Dir alle Variablen zur Verfügung, die über die URL mitgegeben wurden. Die aufgerufene Seite holt (daher GET) sich die Variablen sozusagen aus dem QueryString.
Das Gegenstück ist $_POST. Hier stehen Dir alle Variablen zur Verfügung, die mittels eines Formulars auf die aufgerufene Seite geschickt (daher POST) werden.

Hoffe das hilft Dir weiter zum Vverständnis

happy coding.. Al.

---
---------------------------------------------
many ways out - webdesign & IT-Dienstleistungen
www.manywaysout.de
---------------------------------------------

  Profil   E-Mail   Website   Editieren   Zitieren

Fuzzy
Pixelschubser


Beiträge: 6


So jetzt habe ich ein andere Problem.

Die Seiten werden jetzt durch einen Klick auf den Link includet ( http://localhost/Test/index.php?action=spieler_neu)aber wenn ich z.b. das Formular und auf "SENDEN" gehe bekomme ich auf die Indexseite zurück (http://localhost/Test/index.php)
Es werden auch nur leere "daten" an die mysql tabelle geschickt!

wenn ich aber die datei so aufruffe:
http://localhost/Test/spieler_neu.php
funktioniert alles!

CODE steht oben...

  Profil   E-Mail   Editieren   Zitieren

chip
Quasselstrippe


Beiträge: 391


Du musst ins action-Attribut des Form-Tags den kompletten Link einbauen, also so in etwa:
1:
<form action="http://localhost/Test/index.php?action=spieler_neu" method="post">


So ein ähnliches Prob hatte ich nämlich mal. Hat ewig gedauert bis ichs gefunden habe. Tja manchmal sieht man den Wald vor lauter Bäumen nicht mehr. (hier der Thread dazu: http://www.webwork-community.net/posting4355_23_0.html

---

  Profil   Website   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Warum nur benutzen so viele GET-Params statt Dateinamen

Baut doch einfach eine spieler_neu.php, welche sich von einer zentralen Include-Datei das Layout/die Navigation holt.

*btw* ist die komplette URL im action-Attribut von <form> nicht notwendig. Hingegen ist dort eigentlich sogar ein Query-String untersagt. Man müßte also eigentlich die "Seite" als verstecktes Formularfeld übergeben. Der Wert ist dann in $_POST und $_REQUEST. Die meisten Browser erlauben allerdings einen Query-String bei POST-Formularen, bei GET-Formularen wird er jedoch ignoriert.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben