Verweise auf Div Bereich
Taobyby
- html
Hi
Ich erstelle gerade eine Seite und mache das Layout über <div></div> bereiche anstatt tables oder frames zu nutzen. Jetzt habe ich das Problem ich habe die nav bar und die Links auf der nav bar sollen dafür sorgen das ein bestimmtes php script ausgeführt wird wobei beim klicken des Links auch noch ein Wert übergeben werden soll damit ich in der php Datei in einer Datenbank nach etwas sucht das im Feld xyz den übergebenen Wert hat und im Definierten bereich auf der selben Seite ausgegeben wird.
Die Abragen usw sind kein Problem ich finde nur nichts dazu wie der Link auszusehen hat.
Danke im Voraus
Deine Fehlerbeschreibung ist leider so unvollständig, dass nicht einmal ein Hellseher daraus das Problem erkennen könnte. Ich versuche trotzdem, mögliche Probleme zu erahnen und Lösungsansätze zu geben:
1. hast Du möglicherweise vergessen, wie ein Link aussieht: <a href="URL">
2. Möchtest Du in Wirklichkeit lieber ein Formular, um Daten per GET oder POST an Dein PHP-Script zu übergeben: <form action="URL">
3. Verdeckt vielleicht Dein Content-div den Link - gebe dem div, welches den Link enthält, einen höheren z-index (CSS).
4. Du weißt selber nicht, wo Dein Problem liegt: lese SelfHTML noch einmal langsam und sorgfältig durch. Es bringt nichts, gleich zur letzten Seite zu springen, denn auf ihr wird nicht der Mörder entlarvt.
Gruß, LX
Grundlage für Zitat #1245.
Lieber LX,
in Anlehnung an KA...
Es bringt nichts, gleich zur letzten Seite zu springen, denn auf ihr wird nicht der Mörder entlarvt.
<singsel intonation="schrecklich">Der Mörder ist immer der I-E, und der schlägt erbarmungslos zu...</singsel>
Liebe Grüße,
Felix Riesterer.
Die Abragen usw sind kein Problem ich finde nur nichts dazu wie der Link auszusehen hat.
/index.php?id=1
/index.php?title=startseite
/page.php?action=schlagmichtot
such dir was aus
Die Abragen usw sind kein Problem ich finde nur nichts dazu wie der Link auszusehen hat.
/index.php?id=1
/index.php?title=startseite
/page.php?action=schlagmichtotsuch dir was aus
hm Danke das probiere ich aus. kann ich auch
index.php?id=1?action=schlagdichselbertot schreiben?
Zur Erklärung
Angenommen ich drücke nun Äpfel soll im div bereich inhalt die Datenbank werte zu Äpfel stehen
<div navbar>
äpfel birnen bohnen bier </div>
-------------------------
<div inhalt>
Äpfel
Anzahl: 2
Farbe: rot
reifegrad: matsch
</div>
Wenn ich als nächstes Birnen drücke sollen die Werte von Äpfel gelöscht werden und die von Birnen dastehen ohne das die ganze Seite neu geladen wird sondern nur der Bereich <div inhalt> aktualisiert wird.
Ich geh mal von aus das das nicht wirklich geht(außer ich nutze Frames was nicht sein muß) so wie ich mir das vorstelle darum werden ich es jetzt mal mit komplett neu laden probieren und das ich über den Link den typ weitergebe und dann bei Select ganz normal vergleichen das sollte auch gehen.
Hi,
kann ich auch
index.php?id=1?action=schlagdichselbertot schreiben?
Nein, mehrere name=value-Paare werden durch ein Ampersand & voneinander abgetrennt.
Und in HTML musst du dieses als & notieren.
MfG ChrisB
hm Danke das probiere ich aus. kann ich auch
index.php?id=1?action=schlagdichselbertot schreiben?
du kannst natürlich einen link machen der index.php?seite=obst&kategorie=aepfel heisst oder auch nur index.php?seite=aepfel - wenn deine datenbank ordentlich strukturiert ist, ist die vererbung im menübaum durch eine eltern-kind-beziehung ohnehin gegegeben
wie chris schon sagt: in html musst du das & natürlich maskieren
idealerweise solltest du so wenige parameter wie möglich übergeben und so eindeutige wie möglich - überlege dir das schema daher vor sehr gut
Wenn ich als nächstes Birnen drücke sollen die Werte von Äpfel gelöscht werden und die von Birnen dastehen ohne das die ganze Seite neu geladen wird sondern nur der Bereich <div inhalt> aktualisiert wird.
das ist die sahne oben drauf, kümmere dich erst darum, dass es "überhaupt" funktioniert
Ich geh mal von aus das das nicht wirklich geht(außer ich nutze Frames was nicht sein muß) so wie ich mir das vorstelle darum werden ich es jetzt mal mit komplett neu laden probieren und das ich über den Link den typ weitergebe und dann bei Select ganz normal vergleichen das sollte auch gehen.
da liegst du nicht richtig, frames sind nicht notwendig und die sache ist auch ohne weiteres nötig - dafür ist aber javascript nötigt (die "sahne") - zuerst solltest du sicherstellen, dass das komplette neuladen der seite zum gewünschen effekt führt - nur teile der seite, ohne neuladen, zu tauschen basiert dann im grunde auf der selben logik, greift nur an einem anderen punkt in diese ein - die grundlagen dafür liefert dir eine suche nach "ajax" in der suchmaschine deiner wahl
Also ich habe jetzt den link in der Nav Bar so gemacht
<a href="/index.php?frucht_typ=Apfel">Apfel</a>
im php teil heist es dann
<?php
$obst_typ = $_GET["frucht_typ"];
echo $art_abf_typ;
?>
Leider wird $obst_typ nicht beschrieben zumindest gibt echo nichts aus.
Liegt das daran das die Seite auf der ich den Link drücke die selbe Seite ist die aufgerufen wird und auf der dann der code ausgeführt wird?
Oder habe ich einfach Syntax falsch?
Leider wird $obst_typ nicht beschrieben zumindest gibt echo nichts aus.
works as design
speichere "frucht_typ" aus dem $_GET-array in die variable $obst_typ
und gib anschließend $art_abf_typ
aus
Liegt das daran das die Seite auf der ich den Link drücke die selbe Seite ist die aufgerufen wird und auf der dann der code ausgeführt wird?
nein
Oder habe ich einfach Syntax falsch?
nein die ist richtig
denk nochmal scharf drüber nach - ein sehr banaler fehler
Sorry das ich nicht gleich eine Antwort mit dem Rechtschreibfehler gemacht habe
ich hatte den Code nach dem copy paste umgeschrieben und vergessen $art_abf_typ(artikel_abfrage_typ) gegen $obst_typ auszuwechseln.
Die sind im Code identisch
also
<?
$obst_typ = $_GET[Obst_Typ]
echo $obst_typ;
<a href="/index.php?art_abf_typ=Äpfel">Äpfel</a>
<?php
require_once('Connections/e_alpha.php');
$art_abf_typ = $_GET['art_abf_typ'];
echo $art_abf_typ;
$tabelle ="e_art";
$dbanfrage = "SELECT * from $tabelle WHERE art_typ='{$art_abf_typ}'";
$result = mysql_db_query ($database_eyeopt_alpha, $dbanfrage, $eyeopt_alpha);
while ($ausgabe = mysql_fetch_array ($result))
{
//$ausgabe[art_nam]= htmlspecialchars($ausgabe[art_nam],ENT_QUOTES);
print "<h3><b>" . $ausgabe[art_nam] . "</b></h3><br>" . "\n";
print $ausgabe[art_bes] . "\n <br><br>";
print "<br><br><br>". $ausgabe[art_pre] . " Euro \n <br>";
print $ausgabe[art_kor] . " dpt\n <br>";
print "Artikelnummer: " ."<h4>". $ausgabe[art_num] . "\n</h4><br>";
print $ausgabe[art_typ] . "\n <br><br><br>";
}
mysql_close ($e_alpha) ?>
So das ist jetzt mal der ganze php code, den html rattenschwanz miz Layout und so habe ich weggelassen wichtig ist nur zu wissen das wenn der link betätigt wird genau die selbe Seite geladen wird (index.php)auf der Link und Code untergebracht sind.
$art_abf_typ = $_GET['art_abf_typ'];
$dbanfrage = "SELECT * from $tabelle WHERE art_typ='{$art_abf_typ}'";
wie einst fox mulder sagte: TRUSTNO1
$art_abf_typ = $_GET['art_abf_typ'];
$dbanfrage = "SELECT * from $tabelle WHERE art_typ='{$art_abf_typ}'";wie einst fox mulder sagte: TRUSTNO1
$dbanfrage = sprintf( "SELECT * from $tabelle WHERE art_typ='%s'",
mysql_real_escape_string($art_abf_typ));
jo ok aber das hilft bei dem $_GET problem nicht weiter ist nur sicherer jetzt. ^^
Das gibt
print_r(error_get_last());
Array ( [type] => 8 [message] => Undefined index: art_abf_typ [file] => D:\xampp\htdocs\eyeoptics\index.php [line] => 149 )
Hi,
Array ( [type] => 8 [message] => Undefined index: art_abf_typ [file] => D:\xampp\htdocs\eyeoptics\index.php [line] => 149 )
Also greifst du auf einen Index zu, der gar nicht existiert.
Nutze isset(), um das zu ueberpruefen, bevor du darauf zugreifst.
MfG ChrisB
Hi,
Array ( [type] => 8 [message] => Undefined index: art_abf_typ [file] => D:\xampp\htdocs\eyeoptics\index.php [line] => 149 )
Also greifst du auf einen Index zu, der gar nicht existiert.
Nutze isset(), um das zu ueberpruefen, bevor du darauf zugreifst.
MfG ChrisB
Es geht mir nicht darum sicher zu stellen ob es den index gibt es geht darum das er gar nicht erstellt wird obwohl ich ihn im Link erstelle
<a href="/index.php?art_abf_typ=Apfel">Apfel</a>
Nochmal zur Erklärung
Eine Seite Name: index.php
Auf der Seite befindet sich:
Ein Logo
Eine Navbar
und
Php Code
Der php code soll bestimmte Artikel aus der Datenbank rausholen und anzeigen.
Welche Artikel er rausholen soll, wird oder sollte über die Navbar festgelegt werden.
Also drücke ich jetzt den Button Apfel welcher den Link
<a href="/index.php?art_abf_typ=Apfel">Apfel</a>
Was dazu führt das die Seite index.php neu geladen wird und, wenn es klappen würde, im $_GET Array den index art_abf_typ mit dem Wert Apfel beschreibt.
Daraufhin mache ich es so wie beim $_Post array auch und schreibe
$art_abf_typ = $_GET['art_abf_typ'];
was dann zur Folge hätte das ich
diese Anfrage
$dbanfrage = sprintf( "SELECT * from $tabelle WHERE art_typ='%s'",
mysql_real_escape_string($art_abf_typ));
erstelle und sie per Querry an meine Datenbank übergebe was mir dann im weiterem Verlauf alle Apfelsorten oder einfach Artikeltypen auswerfen würde.
Aber der Index art_abf_typ wird nicht erstellt und ich weiß nicht warum.
Hi,
Array ( [type] => 8 [message] => Undefined index: art_abf_typ [file] => D:\xampp\htdocs\eyeoptics\index.php [line] => 149 )
Also greifst du auf einen Index zu, der gar nicht existiert.
Nutze isset(), um das zu ueberpruefen, bevor du darauf zugreifst.
MfG ChrisB
Es geht mir nicht darum sicher zu stellen ob es den index gibt es geht darum das er gar nicht erstellt wird obwohl ich ihn im Link erstelle
<a href="/index.php?art_abf_typ=Apfel">Apfel</a>
Nochmal zur Erklärung
Eine Seite Name: index.php
Auf der Seite befindet sich:
Ein Logo
Eine Navbar
und
Php CodeDer php code soll bestimmte Artikel aus der Datenbank rausholen und anzeigen.
Welche Artikel er rausholen soll, wird oder sollte über die Navbar festgelegt werden.
Also drücke ich jetzt den Button Apfel welcher den Link
<a href="/index.php?art_abf_typ=Apfel">Apfel</a>
Was dazu führt das die Seite index.php neu geladen wird und, wenn es klappen würde, im $_GET Array den index art_abf_typ mit dem Wert Apfel beschreibt.
Daraufhin mache ich es so wie beim $_Post array auch und schreibe
$art_abf_typ = $_GET['art_abf_typ'];
was dann zur Folge hätte das ich
diese Anfrage
$dbanfrage = sprintf( "SELECT * from $tabelle WHERE art_typ='%s'",
mysql_real_escape_string($art_abf_typ));
>
> erstelle und sie per Querry an meine Datenbank übergebe was mir dann im weiterem Verlauf alle Apfelsorten oder einfach Artikeltypen auswerfen würde.
> Aber der Index art\_abf\_typ wird nicht erstellt und ich weiß nicht warum.
>
>
>
Es geht mir nicht darum sicher zu stellen ob es den index gibt es geht darum das er gar nicht erstellt wird obwohl ich ihn im Link erstelle
das ist klar, aber du musst dennoch für den fall vorsehen, dass etwas passiert, wenn die variable nicht gesetzt ist - fehlermeldungen zu unterdrücken ist keine fehlerbehandlung
nutze var_dump()
um dir den kompletten inhalt deines $_GET
-arrays auszugeben um zu sehen, was da überhaupt drinnen steht
Es geht mir nicht darum sicher zu stellen ob es den index gibt es geht darum das er gar nicht erstellt wird obwohl ich ihn im Link erstelle
das ist klar, aber du musst dennoch für den fall vorsehen, dass etwas passiert, wenn die variable nicht gesetzt ist - fehlermeldungen zu unterdrücken ist keine fehlerbehandlung
nutze
var_dump()
um dir den kompletten inhalt deines$_GET
-arrays auszugeben um zu sehen, was da überhaupt drinnen steht
Du hast natürlich schon recht das man fürs Debugging immer Funktionen wie var_dump()
einbauen sollte aber das ist in dem Fall einfach nicht wichtig da ich zu diesem zeitpunkt nur einen Index über die Url darin speichern möchte und auch nur einen wert im $_GET
array speichere.
<a href="/index.php?art_abf_typ=Apfel">Apfel</a>
Da ich weiß was ich in dem Array speichern möchte und das sich sonst nichts darin befinden kann reicht es wenn ich mit
echo $art_abf_typ;
versuche nach dem neu laden der Seite mit den gezeigten Linkzusätzen art_abf_typ=Apfel
anzuzeigen.
Aber natürlich habe ich deinen Rat dennoch in die Tat umgesetzt und noch
echo var_dump($_GET);
eingefügt. Ergebniss: Das Array ist leer.
Hat keiner ne Idee was da falsch läuft? SChreibe ich den Link falsch oder wie?
<a href="/index.php?art_abf_typ=Apfel">Apfel</a>
echo $art_abf_typ;
versuche nach dem neu laden der Seite mit den gezeigten Linkzusätzen [code »» lang=php]art_abf_typ=Apfel[/code]
anzuzeigen.
natürlich habe ich vor dem Echo
$art_abf_typ = $_GET['art_abf_typ'];
gemacht.
Also das Problem ist gelöst und ich habe es Selbstständig gelöst das ist auch der einzige Grund warum ich nicht vollständig vor Scham im Boden versunken bin :).
Fehlerbeschreibung:
Ich habe Xampp installiert und hier ist im htdocs Verzeichniss die Datei index.php die per Default auf das xampp Verzeichniss umleitet um unter der URL
http://localhost
immer automatisch die Konfiguration zu starten also auf die Url http://localhost/xampp
Ich hatte das umgeschrieben damit die Datei auf das Verzeichniss meiner Page
http://localhost/obsttypen
zeigt. Ich habe in der Navbar dann
<a href="/index.php?art_abf_typ=Apfel">Apfel</a>
geschrieben weil ich dachte das die Datei dann automatisch im verzeichniss obsttypen ausgeführt wird.
Das war aber ein Denkfehler denn der Link hätte so aussehen müßen
<a href="/obsttypen/index.php?art_abf_typ=Apfel">Apfel</a>
Und Voila es ging.
Heute morgen 5 Minuten nach dem Aufstehen im Halbschlaf ist es mir aufgefallen und zum glück habe ich eine Freundin die mich tröstet. :)
Ich danke allen für die Hilfe und für die Tipps was die Sicherheit und die Fehlerabfrage angeht.
mfg Tao
p.s. Ich werde wohl noch öfter hier sein.
:)
Hi,
Also drücke ich jetzt den Button Apfel welcher den Link
<a href="/index.php?art_abf_typ=Apfel">Apfel</a>
Und diese Adresse steht jetzt auch in der Adresszeile deines Browsers, ja?
Was dazu führt das die Seite index.php neu geladen wird und, wenn es klappen würde, im $_GET Array den index art_abf_typ mit dem Wert Apfel beschreibt.
Aber der Index art_abf_typ wird nicht erstellt und ich weiß nicht warum.
Du verwendest aber nicht irgendeine uralte PHP-Version, oder?
MfG ChrisB
Array ( [type] => 8 [message] => Undefined index: art_abf_typ [file] => D:\xampp\htdocs\eyeoptics\index.php [line] => 149 )
was soviel heisst, dass es "art_abf_typ" als index des $_GET-arrays nicht gibt - übergibst du denn einen get-parameter "art_abf_typ"?
Mahlzeit Taobyby,
ich hatte den Code nach dem copy paste umgeschrieben und vergessen $art_abf_typ(artikel_abfrage_typ) gegen $obst_typ auszuwechseln.
Aha. Legst Du eine derartige Sorgfalt bei allem, was Du machst, an den Tag? ;-)
<?
$obst_typ = $_GET[Obst_Typ]
echo $obst_typ;
1\. Hast Du vorher im Code irgendwo eine Konstante namens "Obst\_Typ" definiert? Nein? Du wunderst Dich, warum ich frage? [Darum](http://www.php.net/manual/en/language.types.array.php).
2\. Mich deucht, da fehlt ein Semikolon. Verschweigst Du uns die entsprechende Fehlermeldung oder hast Du wieder nach dem Kopieren im Beitrag herumgeändert?
3\. Wieso überhaupt dieses unsinnige und überflüssige Umkopieren?
MfG,
EKKi
--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
Hi,
<?php
$obst_typ = $_GET["frucht_typ"];
echo $art_abf_typ;
?>
>
> Leider wird $obst\_typ nicht beschrieben zumindest gibt echo nichts aus.
Du moechtest dich ueber das [error reporting](http://www.php.net/manual/en/book.errorfunc.php) von PHP informieren, und wie man es zur Entwicklung sinnvoll einstellt.
MfG ChrisB
--
„This is the author's opinion, not necessarily that of Starbucks.“