Problem mit selected von <option>

Ja, mein Fehler zu schnell gelesen (überlesen).
Aber es funktioniert nicht. Habe die Variablennamen geändert.

PHP:
   $zone_1 = mysql_query("
                SELECT
                     kat_bez,
                     zone_post
                FROM
                     bm_kategorien
                WHERE
                     brief_eu_we > 0
                AND
                     id2 = 5
                ORDER BY
                     zone_post
              ");

         echo"<select name=\"land_w\" cellspacing=\"2\" cellpadding=\"2\">";

              while($land_w = mysql_fetch_assoc($zone_1))
              {
              echo '<option  value="'.$land_w["kat_bez"].'"';

              if (isset($_SESSION['str_land_w']) && $_SESSION['str_land_w'] == $land_w['kat_bez'])
                 {
                         echo ' selected';
                 }
                         echo '>'.$land_w["kat_bez"].'</option>';
                 }

         echo "</select>
 
Ich habe mir mit var_dump $_SESSION['str_land_w']);
ausgeben lassen da zeigt er mir NULL an.
Bin alles noch mal durchgegangen ob doppelte variablen existieren aber nicht
Ich weis nicht warum er es nicht anzeigt
Ich habe dan gleiche select noch in der Kundendatei absolut Gleich
nur die Variable unterscheiden sich statt $_SESSION['str_land_w'] steht $_SESSION['str_land_k'] da und das funktioniert bestens.
Ich bin schon 2 Tage am verzweifeln.

gg
 
Und wenn du mal $_POST['land_w']; direkt ganz oben ausgibst?
Arbeite dich langsam an das Problem ran.

Kann ja nicht so schwer sein in so einem kleinen Script den Fehler nicht zu
finden. Wenn du willst kannst du ja auch nochmal das komplette Script posten - dann gucke ich auch mal rüber.

Achso und ich würde statt strlen($_POST["land_w"]) !=0)
folgendes nutzen: http://de3.php.net/isset

lg
 
Hier schicke ich mal das script. Vielleicht findest du ja den Fehler.

gg

PHP:
<?php
session_start();
if(strlen($_POST["land_w"]) !=0) $_SESSION['str_land_w'] = $_POST['land_w'];
echo "<br>";
var_dump($_POST["land_w"]);   // Ergebnis = NULL

............
...........
...........
............

if ($_SESSION["warenkorb"] >0){

// unset($_SESSION["warenkorb"]);

                 // ------ Überprüfen ob der Artikel schon im Warenkorb liegt

                 // ------ Artikel in den Warenkorb legen

 if ($_POST["vers_id"])
 {
    $_SESSION["warenkorb"][$_POST["vers_id"]] = $_POST["anzahl"];

            if (!is_array($_SESSION["warenkorb"]))
                   $_SESSION["warenkorb"] = array();

 }

                /*
                // -- Menge ändern im Warenkorb --
                */

echo "<div class=\"zurueck_zum_tauschen\">";
echo "<form action=\"index.php?id=".$_SESSION["id"]."&Seite=".$_SESSION['Seite']."\" name=\"tausch\" method=\"POST\">
      <input type=\"submit\" name=\"tausch_absch\" value=\"zurück zum Tauschen\"></input>
      </form>";
echo "</div>";
echo "<div class=\"tausch_abschliesen\">";
echo "<form action=\"kundendaten.php\" name=\"tausch\" method=\"POST\">
      <input type=\"submit\" name=\"tausch_absch\" value=\"Tausch Abschliesen\"></input>
      </form>";
echo "</div>";

 if($_POST["menge"])
 {
     foreach($_POST["menge"] as $vers_id => $anzahl)
     {
          $_SESSION["warenkorb"][$vers_id] = $anzahl;
     }
 }

 if ($_POST["delete"])
 {
     foreach($_POST["delete"] as $vers_id)
     {
        unset ($_SESSION["warenkorb"][$vers_id]);
     }
 }

// ------------ Zurück zum Tauschen ---------------------

               /**
               * Tabelle Warenkorb
               */
 echo "<table class=\"wk_g\"><tr><td>";

 echo "<form action=\"warenkorb.php\" name=\"senden\"
              value=\"Änderung senden\"method=\"POST\">";

 echo "<table class=\"schrift2\" width=\"850px\" border=\"1px\">

 <tr>
     <th align=\"center\" width=\"50px\">Anz.</th>
     <th width=\"100px\">Art.Nr.</th>
     <th width=*>Bezeichnung:</th>
     <th align=\"right\" width=\"100px\">Stückpreis:</th>
     <th align=\"right\" width=\"100px\">Zw-Summe:</th>
     <th width=\"100px\">
        <input type=\"submit\" name=\"leeren\" value=\"Änderung senden\"
               title=\"Ob löschen oder Anzahl ändern.\"></input>
     </th>
 </tr>";
 while(list($vers_id,$anzahl) = each($_SESSION["warenkorb"]))
 {
 echo "<tr>
       <td align=\"center\"><input type=\"text\" size=\"3\"
 name=\"menge[$vers_id]\" value=\"$anzahl\"></td>
 ";
//var_dump($SQLString);

$SQLString = "SELECT
                    bm_versionen.vers_id,
                    bm_versionen.t_preis,
                    bm_versionen.art_nr,
                    bm_datenbank.bm_bez1,
                    bm_datenbank.gr

              FROM
                    bm_versionen, bm_datenbank
              WHERE
                    bm_versionen.bm_id = bm_datenbank.bm_id
              AND
                    bm_versionen.vers_id=$vers_id
 ";
 echo mysql_error();
    $Ergebnis = mysql_query($SQLString);
        while ($info = mysql_fetch_array($Ergebnis)){

           $left10 = $info['art_nr'];
           $left10 = substr($left10,0,10);
           $s_gramm = $info['gr'] * $anzahl;
           $g_gramm = $g_gramm + $s_gramm;

if ($g_gramm <   16) {$porto = 0.65;}
if ($g_gramm >=  15) {$porto = 1.00;}
if ($g_gramm >   40) {$porto = 1.60;}
if ($g_gramm >  450) {$porto = 2.40;}

if ($g_gramm > 1700) {
    $porto = 7.00;
    $text1 = "vers. DHL-Versand";
    }
if ($g_gramm > 8500) {$porto =10.00;}

  echo "
          <td>".$left10."</td>
          <td>".$info[bm_bez1]."</td>
          <td align=\"right\">".number_format($info[t_preis],2,",",".")."</td>
          <td align=\"right\">".number_format($info[t_preis]*$anzahl,2,",",".")."</td>
          <td>".$s_gramm."</td>
          <td class=\"loeschen1\"><input type=\"checkbox\"
                name=\"delete[]\" value=\"$vers_id\">&nbsp;Löschen</td>
      </tr>";

          $sum = $sum + ($info[t_preis]*$anzahl);
          $g_sum = $sum + $porto;
          $anz = $anz + $anzahl;
          $mwst = $g_sum/107*7;

       }
 }
 echo "</table>";
   echo "
    <table class=\"schrift2\" width=\"714px\" border=\"1\">
        <tr>
          <td width=\"50px\" align=\"center\">&nbsp;</td>
          <td width=\"*\" colspan=\"3\"align=\"right\">Versandkosten für:
          ";
   $zone_1 = mysql_query("
                SELECT
                     kat_bez,
                     zone_post
                FROM
                     bm_kategorien
                WHERE
                     brief_eu_we > 0
                AND
                     id2 = 5
                ORDER BY
                     zone_post
              ");

         echo"<select name=\"land_w\" cellspacing=\"2\" cellpadding=\"2\">";

              while($land_w = mysql_fetch_assoc($zone_1))
              {

              echo '<option  value="'.$land_w["kat_bez"].'"';

                      if ($land_w["kat_bez"] == $_SESSION['str_land_w'])
                 {
                         echo ' selected';
                 }
                         echo '>'.$land_w["kat_bez"].'</option>';
                 }

         echo "</select>
         </td>
          <td width=\"100px\"align=\"right\">".number_format($porto,2,",",".")."&nbsp;</td>
          <td>

          </td>
        </tr>
        <tr>
          <td width=\"50px\" align=\"center\">&nbsp;</td>
          <td width=\"*\" colspan=\"3\" align=\"right\">inkl.Mwst.&nbsp;</td>
          <td width=\"100px\"align=\"right\">".number_format($mwst,2,",",".")."&nbsp;</td>
          <td></td>
        </tr>
        <tr>
          <td width=\"50px\" align=\"center\">".$anz." Artikel</td>
          <td width=\"*\" colspan=\"3\" align=\"right\">Gesamtsumme&nbsp;</td>
          <td width=\"100px\" align=\"right\">".number_format($g_sum,2,",",".")."&nbsp;</td>
          <td>".$g_gramm."</td>
        </tr>
   </table>

 </td></tr></table>
 </from>";
 echo "</td></tr></table>";
}
ELSE
{
  echo "<div class=\"wk_g\">";
  echo "<h1>Ihr Warenkorb ist leer</h1>";
  echo "</div>";
}
?>
</body></html>
 
Du hast recht es liegt an der variable POST nur der name ist richtig.
Ich wüsste nicht was da falsch ist.
POST hat keinen Inhalt und laut Test nicht aktiviert.
Habe es so ausprobiert:
PHP:
if(!isset($_POST['land_w']))
   {$_SESSION['str_land_w'] = "Frankreich";}

gg
 
Zurück