• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Variable nur ändern, wenn im select-feld geklickt wird!

Mahlzeit,

ich habe den nachfolgenden Quellcode und möchte die Variable $_SESSION['filename_with_path'] nur auf "0" setzen, wenn im Select-Feld name='selection_folder' geändert bzw. geklickt wird.

Mein Fehler ist, dass er auch bei Auslösung andere Ereignisse durch Click die Variable auf 0 setzt! Die Lösung mit dem value-Wert aus dem Select-Feld "filename_with_path" scheidet leider aus, da ich nicht weiß, welche Dateien sich in den Ordnern befinden.

PHP:
echo "<form action='test.php' method='POST'>";
...
if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {
    if (isset($_POST['filename_with_path']))
        {    $_SESSION['filename_with_path'] = $_POST['filename_with_path']; }
    if (isset($_POST['selection_folder']))
        {    $_SESSION['selection_folder'] = $_POST['selection_folder'];
            $_SESSION['filename_with_path'] = "0";    }
    if (isset($_POST['line_count']))
        {    $_SESSION['line_count'] = "1"; }    else $_SESSION['line_count'] = "0";
    }
    else
    {
        $_SESSION['selection_folder'] = "0";
        $_SESSION['filename_with_path'] = "0";
        $_SESSION['line_count'] = "0";
        
    }
...
echo "<select name='selection_folder' onClick='this.form.submit();'>";
    echo "<option value='dirname' >dirname</option>";
echo "</select>";
....
echo "<select multiple='multiple' name='filename_with_path' onClick='this.form.submit();'>";
    echo "<option value='filename' >filename</option>";
echo "</select>";
...
echo "<input type='checkbox' name='line_count' value='1'"; if ($_SESSION['line_count'] == "1") { echo "checked"; }echo " onClick='this.form.submit();'>ZeilenNr anz.";
...
echo "</form>";
 
Werbung:
Du könntest dir den aktuellen Wert von selection_folder in einem Hidden-Feld merken und dann nach Absenden des Formulars damit vergleichen. Oder eine Variable in der Session setzen ginge auch.
 
Werbung:
Immer wieder erstaunlich. wie schwer sich Manche mit dem logischen Denken schwer tun, wenn es um Programmieren geht. Ein Beispiel:
PHP:
<?php

   $last = "A";
   $data = array ("A", "B", "C", "D", "E");
 
   if (isset($_POST['last']))
   {
       $last   = $_POST['last'];
     
       if ($last != $_POST['select'])
         $message = "Geändert";
       else
         $message = "Nicht geändert";
   
       $last   = $_POST['select'];
   }
?>
<!DOCTYPE html>
<html lang="de">
  <head>
    <meta charset="utf-8" />
    <title>Test</title>
  </head>
  <body>
<?php if (isset($message)) echo $message; ?>
  <form action="" method="post">
    <select name="select">
<?php
    foreach ($data as $value)
    {
       $selected = ($last == $value) ? "selected" : "";
       echo "<option value='$value' $selected>$value</option>\n";
    }
    echo "</select>
                <input type='hidden' name='last' value='$last' >\n";
?>
 
  <input type="submit" name="submit" value="Senden">
  </form>
  </body>
</html>
 
Werbung:
Tja, und das verstehe ich nicht ... Ablauf ist der Gleiche...werde als Notlösung deine Variante wählen - wollte aber eigentlich ohne hidden-Feld arbeiten
 
Werbung:
Zurück
Oben