2016-06-29 4 views
1

Ich habe diese Upload-Formular und möchte die ausgewählte Option aus dem Dropdown in der Sitzung, um die letzte Auswahl nach dem Senden, z. ich wähle die option 'color' und nach dem absenden wird noch farbauswahl im dropdown ausgewählt. Ich Echo $ _SESSION ['Testname'] (kurz vor dem ersten Radio-Button) und es gibt mir zurück "Farbe", aber in der Option-Tag, wo ich Echo "ausgewählt" wenn "Farbe" wäre der letzte Auswahl, es gibt nichts zurück! Was vermisse ich?PHP Sitzung verwenden, um Dropdown-Option

<?php 
 
session_start(); 
 
if(isset($_POST['kategorie'])) { 
 
$_SESSION['testname']=$_POST['kategorie']; } 
 
?> 
 

 
<?php 
 

 
$con = mysqli_connect("localhost","Melvin","") or die ("could not connect to server: " . mysqli_connect_error($con)); 
 
mysqli_select_db($con, "galerie") or die ("Could not connect to database: " . mysqli_error($con)); 
 

 
if(isset($_POST['submit'])){ 
 

 
$name = $_FILES['file']['name']; 
 
$sub_name = substr($name, 0, -4); 
 
$img_ext = ".jpg"; 
 
$tmp_name = $_FILES['file']['tmp_name']; 
 
$location = '_images/_galerie/'; 
 
$target = '_images/_galerie/' .$name; 
 

 
\t if(move_uploaded_file($tmp_name,$location.$name)){ 
 
\t \t 
 
\t \t echo "file uploaded"; 
 
\t \t 
 
\t \t $nam = $_POST['nam']; 
 
\t \t $kategorie = $_POST['kategorie']; 
 
\t \t $size = $_POST['size']; 
 
\t \t 
 
\t \t if ($size == 'thumb') { 
 
\t \t \t // add "thumb" between filename and extension \t \t \t 
 
\t \t \t $extension_pos = strrpos($target, '.'); // find position of the last dot, so where the extension starts 
 
\t \t \t $thumb = substr($target, 0, $extension_pos) . '_thumb' . substr($target, $extension_pos); \t \t \t 
 
\t \t \t $query = mysqli_query($con , "INSERT INTO images(img_name,img_title,img_cat,img_size)VALUES('".$thumb."','$nam','$kategorie','$size')"); \t 
 
\t \t } else { 
 
\t \t \t $query = mysqli_query($con , "INSERT INTO images(img_name,img_title,img_cat,img_size)VALUES('".$target."','$nam','$kategorie','$size')"); \t 
 
\t \t } \t \t 
 
\t \t 
 
\t \t function renameImg() { 
 
\t \t \t $name = $_FILES['file']['name']; 
 
\t \t \t $target = '_images/_galerie/' .$name; 
 
\t \t \t $extension_pos = strrpos($target, '.'); 
 
\t \t \t $thumb = substr($target, 0, $extension_pos) . '_thumb' . substr($target, $extension_pos); 
 
\t \t \t rename($target, $thumb); 
 
\t \t \t //echo $name . " replaced with " . $thumb; 
 
\t \t }; 
 
\t \t renameImg(); 
 
\t \t 
 
\t } else { 
 
\t \t 
 
\t \t echo "file not uploaded"; 
 
\t \t \t 
 
\t } 
 

 
} 
 
?> 
 

 
<div style="margin:20px 0 40px 0;"> 
 
    <form action="upload.php" method="POST" enctype="multipart/form-data">  
 
     Upload: <input type="file" name="file"> 
 
     Title: <input type="text" name="nam" value="Tattoo Gallery"> 
 
     Category: <select name="kategorie" id="selectKat">    
 
      <option value="black" <?php if(isset($_SESSION['kategorie']) == "black") { echo ' selected';} ?>>Black and white</option> 
 
      <option value="colour" <?php if(isset($_SESSION['kategorie']) == "colour") { echo ' selected';} ?>>Colour</option>     
 
     </select> 
 
     
 
     \t <br> 
 
      <?php 
 
\t \t \t \t echo $_SESSION['testname']; 
 
\t \t \t ?> 
 
     \t 
 
     <input type="radio" name="size" value="full" id="regularRadio" checked="checked"> 
 
     <label for="regularRadio">Full size</label> 
 
     <br>   \t 
 
     <input type="radio" name="size" value="thumb" id="thumbRadio"> 
 
     <label for="thumbRadio">Thumbnail</label> 
 
     <br> 
 
     
 
     <input type="submit" name="submit"> 
 
    </form> 
 
</div> 
 

 
<?php 
 
$result = mysqli_query($con, "SELECT * FROM images WHERE img_size='thumb'"); 
 

 
while($row = mysqli_fetch_array($result)){ \t 
 
\t echo "<img src=".$row['img_name'] . " &nbsp; class='thumbnails' style='display:inline;float:left;'>"; 
 
\t \t 
 
} 
 
?>

+0

Wenn ich den Code hier ausführen, sehe ich, dass es ein> vor dem Wert in der Options-Box ist. Also '> schwarz und weiß'. Sie könnten versuchen, ein Leerzeichen zwischen dem End-PHP-Tag und der Endoption> hinzuzufügen. '

+0

thx, leider hat es den Job nicht gemacht – Melvin

+0

Sorry bemerkte nicht die Isset als Papang mit beantwortet, versuche es ohne isset und mit dem Leerzeichen – Andreas

Antwort

1

Sie nicht die Funktion isset() verwenden müssen. Diese Funktion gibt True oder False zurück.

Sie müssen nur noch den Wert von $ _POST vergleichen [ 'Kategorie'] oder $ _SESSION [ 'testname'] (wie ich sehe) mit Ihrem Text ("Farbe" oder "schwarz"), wie folgt aus:

if ($_SESSION['kategorie'] == "black") { echo ' selected'; } 
+0

thx für Ihre Antwort, ich versuchte es wie Sie vorgeschlagen, aber ich bekomme diese undefinierte Index Bekanntmachung, deshalb habe ich versucht mit "isett" ... – Melvin

+0

macht mir nichts aus, es tut mir leid, es hat tatsächlich funktioniert !! Danke vielmals! – Melvin