Nico: Hilfe: Problem mit div

was würdet ihr sagen is der beste php-coder den es so gibt?

will mir nur zusätzliche ideen holen, soll nebenbei php-coder testen...

der preis spielt eigentlich keine rolle.. ;)

thx tom

PHP Coder pro: http://www.phpide.de

  1. Hi Nico,

    ich weiß zwar nicht ob ich dein Problem richtig verstanden habe, aber vielleicht kommst Du damit weiter ...

    Wie muss ich es umfunktionieren, damit

    1. beide Formfelder beim Aufruf des Skripts leer bleiben (damit die ganze Database ausgelesen wird)

    ... ich würde halt in jedem Formular noch eine leere "dummy"-option ohne Text dazunehmen, die als Standard beim 1. Aufrufen angezeigt (selected = true) wird ..

    1. auch die Suche innerhalb eines ganzen Landes generiert werden kann, ohne dass automatisch auch eine Region ausgewaehlt wird?

    ... wenn Land="Deutschland" und Region="dummy"(also leer), dann suche im ganzen Land ...

    Ich hoffe dir gehelft zu haben

    Beste Gruesse

    Frankie

    1. Hi Nico, Frankie
      Ich wuerde das ganze auch auf aehnliche Art loesen, nur, dass ich nicht eine Dummyzeile, sondern eine Zeile mit: alle Laender, bzw alle Regionen einfuegen wuerde. Sonst weiss der ahnungslose user naemlich nicht was er da ueberhaupt sucht ;-)
      Ausserdem hast du (Nico) bei deinem Quelltext einiges! an mist kopiert, bzw falsch gemacht:
      1. hinter dem 1ten </html> stehen nochmal die letzten zwei divs.
      2. 5.div: id name="Östereich" ist wegen dem Ö falsch. Also einfach:id name="Oestereich".
      3. in den 5 "RegionalFormularen"steht im form tag: action method target onSubmit="return FrontPage_Form6_Validator(this)" ....
      Da du aber wenn ich das richtig verstanden habe diese Formulare gar nicht abschicken willst, kannst du alles bis auf den Namen der Formulare weglassen
      Ausserdem: du willst: onSubmit="return FrontPage_Form1_Validator(this) verschicken, nennst aber das Formular FrontPage_Form1 ohne_Validator?? (Bei den Regionalformularen im uebrigen auch!!) Ausserdem kann ich nicht sehen wofuer du ueberhaupt diese Zuweisung brauchst.
      4. In der function Wertuebertragen(i) weist du document.forms[0].b_land.value irgendwas zu, aber es gibt leider gar kein Input mit namen b_land sondern nur eins mit namen regionen. Das musst du also noch umbenennen. In diesem versteckten Input fehlt auch noch die Angabe value=""!
      Ausserdem gibt es dann grosse!! Probleme, wenn man ein bischen chaotisch herumklickt. Beispiel: Ich waehle Deutschland und dann als Region Berlin, waehle dann Frankreich mit der Region Alsace.
      Wenn ich dann wieder auf Deutschland zurueckgehe, ist erneut Berlin als Region vorgewaehlt, im Formular wurde aber als letzte Region Alsace gewaehlt und das wuerde auch beim Abschicken mit uebertragen!!
      Um dieses Problem zu umgehen muss die Region bei jedem Landwechsel (und damit:bei jedem aufruf von function zeigeLaender()) neu uebergeben werden.
      So jetzt mal den ganzen Quelltext:
      <html>
      <head>
      <title>Suche</title>
      <script language="JavaScript">
      <!--
      function Wertuebertragen(i) {
      if (document.layers){
      for(j=0;j<document.layers[i].document.forms[0].regionen.length;++j)
          if(document.layers[i].document.forms[0].regionen.options[j].selected == true)
      document.forms[0].b_land.value=document.layers[i].document.forms[0].regionen.options[j].value;
      }
      else if (document.all){
      for(j=0;j<document.forms[i+1].regionen.length;++j)
          if(document.forms[i+1].regionen.options[j].selected == true)
      document.forms[0].b_land.value=document.forms[i+1].regionen.options[j].value;
      }
      return
      }

      function zeigeLaender() {

      i=document.forms[0].land.selectedIndex;

      if (document.layers){

      for (j=0;j<5;j++) document.layers[j].visibility="hide";
      if (i>0){
      document.layers[i-1].visibility="show";
      for(j=0;j<document.layers[i-1].document.forms[0].regionen.length;++j)
          if(document.layers[i-1].document.forms[0].regionen.options[j].selected == true)
      document.forms[0].b_land.value=document.layers[i-1].document.forms[0].regionen.options[j].value;}
      else document.forms[0].b_land.value="";
      }

      else {

      for (j=0;j<5;j++) document.all.tags("div")[j].style.visibility="hidden";
      if (i>0){
      document.all.tags("div")[i-1].style.visibility="visible";
      for(j=0;j<document.forms[i].regionen.length;++j)
          if(document.forms[i].regionen.options[j].selected == true)
      document.forms[0].b_land.value=document.forms[i].regionen.options[j].value;}
      else document.forms[0].b_land.value="";}
      return

      }

      //-->

      </script>
      </head>

      <body bgcolor="#F0F0F0">

      <form action="suchbild.php3" name="FrontPage_Form1" method="GET">
        <input type="hidden" name="notify" value="yes"><input type="hidden" name="b_land" value=""

      <p>Geben

      Sie hier hier die Kriterien ein: </p>
        <table border="0" width="249" height="22">
          <tr>
            <td width="114" height="22">LAND:</td>
            <td width="123" height="22"><select name="land" size="1" onchange="zeigeLaender()">
              <option value="land0">Alle Länder</option>
              <option value="land1">Deutschland</option>
              <option value="land2">Frankreich</option>
              <option value="land3">Luxemburg</option>
              <option value="land4">Österreich</option>
              <option value="land5">Belgique</option>
            </select></td>
          </tr>
          <tr>
            <td width="114" height="22">REGION:</td>
            <td width="123" height="22"></td>
          </tr>
        </table>
        <p><input type="Submit" name="submit" value="Abschicken"> <input type="reset"
        value="Löschen"> </p>
      </form>

      <div id="Deutschland" style="position:absolute; top:82; left:132; visibility:hidden;">
      <form name="FrontPage_Form2">
        <p><select name="regionen" size="1" onchange="Wertuebertragen(0)">
          <option value="alles">Alle Regionen</option>
          <option value="Baden-Württemberg">Baden-Württemberg</option>
          <option value="Bayern">Bayern</option>
          <option value="Berlin">Berlin</option>
        </select></p>
      </form>
      </div>

      <div id="Frankreich" style="position:absolute; top:82; left:132; visibility:hidden;">
      <form name="FrontPage_Form3">
        <p><select name="regionen" size="1" onchange="Wertuebertragen(1)">
          <option value="alles">Alle Regionen</option>
          <option value="Alsace">Alsace</option>
          <option value="Aquitaine">Aquitaine</option>
          <option value="Auvergne">Auvergne</option>
        </select> </p>
      </form>
      </div>

      <div id="Luxemburg" style="position:absolute; top:82; left:132; visibility:hidden;">
      <form name="FrontPage_Form4">
        <p><select name="regionen" size="1" onchange="Wertuebertragen(2)">
          <option value="alles">Alle Regionen</option>
          <option value="Luxemburg">Luxemburg</option>
          <option value="Diekirch">Diekirch</option>
          <option value="Grevenmacher">Grevenmacher</option>
        </select> </p>
      </form>
      </div>

      <div id="Oesterreich" style="position:absolute; top:82; left:132; visibility:hidden;">
      <form name="FrontPage_Form5">
        <p><select name="regionen" size="1" onchange="Wertuebertragen(3)">
          <option value="alles">Alle Regionen</option>
          <option value="Burgenland">Burgenland</option>
          <option value="Kärnten">Kärnten</option>
        </select> </p>
      </form>
      </div>

      <div id="Belgique" style="position:absolute; top:82; left:132; visibility:hidden;">
      <form name="FrontPage_Form6">
        <p><select name="regionen" size="1" onchange="Wertuebertragen(4)">
          <option value="alles">Alle Regionen</option>
          <option value="Bruxelles">Bruxelles</option>
          <option value="Flandre">Flandre</option>
          <option value="Wallonie">Wallonie</option>
        </select> </p>
      </form>
      </div>
      </body>
      </html>
      Tschau Holger
      PS ich hab das nur mit Netscape getestet. Es koennte sein, dass in der Funktion zeigeLaender einige i's durch i+1 oder aehnliches ersetzt werden muessen ;-)

      1. Hi Holger,

        das mit der Dummyoption habe ich nicht etwa so gemeint, daß da nix drinstehen darf </g>

        und das mit dem [i+1] habe ich dem Nico gerade eben gemehlt, jetzt bekommt ers halt doppelt (kann halt nicht immer auf dem neuesten Stand im Forum sein :)

        Gruß

        Frankie

        P.S.: ich hatte mir das script nicht näher angeschaut, aber jetzt nachdem du es erwähnt hast frage ich mich auch weshalb submit, etc ..

        Hi Nico, Frankie
        Ich wuerde das ganze auch auf aehnliche Art loesen, nur, dass ich nicht eine Dummyzeile, sondern eine

      2. Hi Holger,

        allerbesten Dank fuer Deine Analyse und Hilfe bei der Problemloesung an dem Mist, der auf dem eigenen gewachsen ist (sonst waeren wahrscheinlich weniger Fehler drin ..;-)).

        Beste Gruesse
        Nico