Problem mit dem Submit einer DropDown Auswahl

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Datschi, 14.07.06.

  1. Datschi

    Datschi Reinette de Champagne

    Dabei seit:
    08.11.04
    Beiträge:
    415
    Moin ihr ATer!

    Hab diesmal eine Frage bezüglich dem Absenden einer Auswahl aus einem automatisch generierten DropDown-Menu.
    Das Menu wird per php aus der DB ausgelesen und automatisch generiert. Jetzt soll die Auswahl per Submit-Button einfach an ein anderes Skript gesendet werden, was die Variablen dann ja automatisch lesen kann ($_POST['name'], z.B.). Mit einem oder mehreren Textfeldern ist das kein Problem. Aber mit dem DropDown Menu will das einfach nicht klappen! Woran könnte das liegen? Hier der
    Code:
    <form action="loeschen.php" name="feedLoeschen" method="post">	
    	<?php
    $tabellenname = "adresses";
    $sqllink = mysql_connect("localhost", "root", "");
    mysql_select_db("rss", $sqllink);
    $sql = "SELECT feed_name FROM $tabellenname";
    $addr = mysql_query($sql);
    
    echo "<p>\n<select name=\"Feeds\" size=\"1\">";
    
    while ($row = mysql_fetch_array($addr, MYSQL_ASSOC)) {
    	
    	while (list ($k,$v) = each($row)) {
    		echo "<option name=\"name\">" . $v . "</option>\n";
    	}
    	
    }
    echo "</select>\n";
    ?>
    
    <input type="submit" name="absenden" value="l&ouml;schen">
    </form>
    der datschi freut sich über jegliche Hilfe! :)
     
  2. quarx

    quarx Brauner Matapfel

    Dabei seit:
    17.04.05
    Beiträge:
    8.444
    Mit
    Code:
    $_GET['name']
    klappt das Auslesen auch nicht? (Also auch Methode in der Form ändern)
     
  3. Datschi

    Datschi Reinette de Champagne

    Dabei seit:
    08.11.04
    Beiträge:
    415
    ne, die get-methode geht leider auch nicht! Hatte den gleichen Gedanken, aber die macht genau das gleiche: Nichts.
    Und eigentlich wollte ich schon bei der Post-methode bleiben, weil die die Daten ja nicht verschlüsselt in der Adressleiste mit überträgt...

    Hier nochmal das File mit dem Auslesen der Variablen:
    Code:
    <?php
    
    
    		echo $_POST['name'];
    		
    ?>
    
    <a href="admin.php">
      <input type="button" name="zurück" value="OK"/></a>
      
      
    
    das echo $_POST['name'] soll ja eigentlich bloß zeigen, ob die Variable überhaupt übertragen wird. Das mit dem löschen aus der DB ist ja dann eigentlich kein Problem mehr!
     
  4. Sir Q

    Sir Q Rheinischer Winterrambour

    Dabei seit:
    12.04.05
    Beiträge:
    921
    Nimm mal:

    echo '<option value="'.$k.'">'. $v .'</option>';

    denn der (Variablen)Name wurde ja schon dem <select name="Feeds"> gegeben ...

    ~

    Noch Tip zum „debuggen“:

    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
     
  5. Datschi

    Datschi Reinette de Champagne

    Dabei seit:
    08.11.04
    Beiträge:
    415
    dein debug-Tip gibt mir dann

    Code:
    Array
    (
        [Feeds] => name
        [absenden] => löschen
    )
    
    Was mir irgendwie nicht weiterhilft. Kann natürlich auch an der Uhrzeit und den Temperaturen liegen, aber ich seh nicht, warum er mir nicht die Auswahl übergibt....:mad: :-c

    Wäre für weitere Tips äußerst dankbar!
     
    #5 Datschi, 14.07.06
    Zuletzt bearbeitet: 14.07.06
  6. MrNase

    MrNase Champagner Reinette

    Dabei seit:
    11.01.05
    Beiträge:
    2.656
    Dumme Sache, aber kann es sein das $k immer 'name' ist...?

    Nicht, dass du da ein Auswahlmenü folgender Struktur hast:


    Code:
    <select name="Feeds" size="1">
    <option value="name">bla</option>
    <option value="name">blubb</option>
    <option value="name">wuff</option>
    <option value="name">miauw</option>
    </select>
    Weil dann wird $_POST['Feeds']/$_GET['Feeds'] ja immer 'name' sein. :)


    Normalerweise ist 'bla' oder 'blubb' ja nur der Text der schlussendlich angezeigt wird und das was bei 'value' steht ist der eigentliche Wert und $_POST['Feeds']/$_GET['Feeds'] wird immer das ausliefern was bei 'value' steht.
     
  7. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Damit sollte es klappen:
    Code:
    <?php
    
    	function fetchFeedNames () {
    	
    		if ($sqllink = mysql_connect('localhost','root','')) {
    			mysql_select_db('rss', $sqllink);
    			
    			$sql	=	"SELECT feed_name FROM adresses";
    			if ($rsrc = mysql_query ($sql, $sqllink)) {
    				if (mysql_num_rows ($rsrc) > 0) {
    					return $rsrc;
    				}
    			}
    		}
    		
    		return FALSE;
    	}
    
    ?>
    <form action="loeschen.php" name="feedLoeschen" method="post">	
    <?php
    	
    	if ($feeds = fetchFeedNames ()) {
    	
    		print ("<select name=\"Feeds\" size=\"1\">\n");
    
    		while ($feeds_detail = mysql_fetch_assoc ($feeds)) {
    			printf ("<option value=\"%1\$s\"%2\$s>%1\$s</option>\n",
    				$feeds_detail['feed_name'],
    				($_POST['Feeds'] = $feeds_detail['feed_name']) ? ' selected' : '');
    		}
    		
    		print ("</select>\n");
    	}
    ?>
    	<input type="submit" name="absenden" value="l&ouml;schen" />
    </form>
    
    Ich hoffe, es hilft.