Taobyby: Verweise auf Div Bereich

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

  1. 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

    --
    X-Self-Code: sh:( fo:) ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: Unusual
    X-Please-Search-Archive-First: Absolutely Yes
    1. 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.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. 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

    1. 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

      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.

      1. 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 &amp; notieren.

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
      2. 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

        1. 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?

          1. 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

            1. 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;  
              
              
              1. <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.

                1. $art_abf_typ = $_GET['art_abf_typ'];
                  $dbanfrage = "SELECT * from $tabelle WHERE art_typ='{$art_abf_typ}'";

                  wie einst fox mulder sagte: TRUSTNO1

                  1. $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 )

                    1. 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

                      --
                      „This is the author's opinion, not necessarily that of Starbucks.“
                      1. 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.

                        1. 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.  
                          >   
                          >   
                          > 
                          
                        2. 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

                          1. 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 $_GETarray 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?

                            1. <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.

                          2. 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.
                            :)

                        3. 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

                          --
                          „This is the author's opinion, not necessarily that of Starbucks.“
                    2. 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"?

              2. 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:|
                
          2. 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.“