Variable aus ComboBox übergeben

  • Themenstarter Themenstarter encom
  • Beginndatum Beginndatum
E

encom

Hallo, ich mache in einer Datenbank eine Suchanfrage und schreibe alle gefundenen Datensätze in eine ComboBox.

wie kann ich nach Klick auf den Button die tipp_ID als Variable an die Form übergeben?

Danke


PHP:
<?php
  $db = mysql_connect("HOST","USERNAME","PASSWORT") or die ("Keine Verbindung möglich"); 
  mysql_select_db("DATENBANKNAME",$db); 


  $query = "SELECT * FROM tipps WHERE tipp_name like '%edit'"; 
  $resID = mysql_query($query, $db); 


  echo "<form name=\"formular1\" method=\"post\" action=\"test.php?ID=$value\">\n"; 
  echo "<select name=\"select\">\n"; 
  while($row = mysql_fetch_array($resID))
  {
  echo "<option value=".$row['tipp_ID'].">".$row['tipp_name']."</option>\n";
  }
  echo "</select><input type=\"submit\" value=\"Auswählen\"></form>\n";
?>
 
Also ist dein Problem konkret das schreiben der Werte aus der Datenbank in diese Select Form ? Oder was klappt im Moment nicht an deinem Code ?

[edit]
Hier stand erstmal Müll :rolleyes:

und ich habe es folgendermaßen gelöst und läuft einwandfrei

PHP:
<form action="bla.php" method="post">
 <select name="delnews" class="forms">
 <?
 $query = "SELECT * FROM news ORDER BY ID DESC";
 $result = mysql_query($query);
 $nums1 = mysql_num_rows($result);
 
 $i = 0;
 while ($i < $nums1) {
  $row = mysql_fetch_array($result);
  $ID = $row[ID];
  $titel = $row[titel];
  echo "<option value=\"$ID\">$titel";
  $i++;
 }
 ?>
</select>
</form>

Ist zwar keine identische Problematik, wie die deinige, aber ist doch ziemlich nah dran, wenn ich mir das so angucke und so klappt es 100%ig.

Bei weiteren Fragen nur zu frag. :)
[/edit]
 
Zuletzt bearbeitet:
Also das Auslesen in die Combobox aus der Datenbank klappt.
Ich will nun einen Wert aus der Combobox auswählen und den Value des Eintrages als Variable $ID der Form übergeben, so das die Seite test.php mit ?ID=$ID neu aufgerufen wird. So will ich nämlich den Text aus der datenbank anzeigen lassen der zu dem gefundenen Eintrag gehört.

Außerdem würde mich noch interessieren, wie ich das Suchwort in der Abfrage erst zur Laufzeit zuweisen kann, indem ich es in ein Textfeld schreibe.

Danke schonmal
 
aso jetzt wird das was klarer, dürfte aber auch in meinem codeschnipsel oben zu sehen sein. Der <form> tag ist so definiert, dass nach drücken des submit Buttons der gesamte Variablen-Kladeradatsch, der zwischen <form> und </form> definiert wird, an bla.php übergeben wird.

Hoffe das bringt dich der Lösung etwas näher.
 
Ich Danke euch, aber das Problem besteht ja darin, wenn ich jetzt einen Wert aus der Combobox auswähle, soll automatisch die ID mit zur URL hinzugefügt werden, so das die url dann so aussieht http://www.ensacom.de/test.php?ID=234


Das ganze sieht jetzt so aus.

in das Edit wird der Suchbegriff eingegeben, danach werden alle gefundenen Einträge aus der Datenbank in der Combobox ausgegeben

PHP:
<form action="test.php" method="post">
<input type="text" name="textfield" value="<?php echo $textfield;?>"><br><br>
 <select name="delnews" class="forms">
 <?
 $query = "SELECT * FROM tipps WHERE tipp_name like '%".$textfield."%'";
 $result = mysql_query($query);
 $nums1 = mysql_num_rows($result);
 
 $i = 0;
 while ($i < $nums1) {
  $row = mysql_fetch_array($result);
  $ID = $row[tipp_ID];
  $titel = $row[tipp_name];
  echo "<option value=\"".$ID."\">".$titel."</option>\n";
  $i++;
 }
 ?>
</select>
</form>
 
Wenn die URL sofort mit dem auswählen geändert werden soll, wirst du mit PHP nicht weiterkommen, da PHP ja Serverseitig komplett kompiliert wird und dann zum Client geschickt wird. Das müsstest du dann mit JavaScript lösen.

Da der <form> tag geschrieben wird, bekommst du es nicht direkt an die URL mit dran, aber bedingt durch den form tag wird die Variable doch ohnehin an die nächste Seite übergeben. Warum bist du also so scharf, dass an die URL dranzuhängen, wenn es doch nicht nötig ist ???
 
Hey, vielen Dank für den Tip.

Ich habe nicht gewust das die Variable mit übergeben wird.
Ich hab es eben mal so getestet.

PHP:
<form action="test.php" method="post">
<input type="text" name="textfield" value="<?php echo $textfield;?>"><br><br>
<select name="delnews" class="forms">

<?
  if ($textfield == "") {$textfield = "string";} 
  $query  = "SELECT * FROM tipps WHERE tipp_name like '%".$textfield."%'";
  $result = mysql_query($query);
  $nums1  = mysql_num_rows($result);

  $i = 0;
  while ($i < $nums1) 
  {
    $row   = mysql_fetch_array($result);
    $ID    = $row[tipp_ID];
    $titel = $row[tipp_name];
    echo "<option value=\"".$ID."\">".$titel."</option>\n";
    $i++;
  }
?>
<input type="submit" name="Submit" value="Abschicken">
</select>
</form>
<p><a href=test.php?ID=<?php echo $selected;?>><img src="http://www.ensacom.de/images/delete.gif" width="15" height="15" border="0"></a></p>

<?php 
  if ($delnews != ""){
  echo "HALLO  ".$delnews;
  }
?>

Jetzt bekomm ich die ID des ausgewählten Eintrages der Combobox.

Das sollte ja mit der Abfrage so richtig sein oder?
 
da ist noch der eine oder andere schönheitsfehler drinne aber prinzipiell ist das schon so richtig. Also fangen wir mal an:

• name="delnews" würde ich abwandeln heisst bei mir halt so, weil ich damit news lösche mit dem auswahlteil. class="..." komplett raus, ist nur für das erscheinungsbild wichtig, da dir die zugehörige css datei fehlt -> raus damit

• den Submit Button bitte nicht in das <select> mit reinnehmen also erst </select> und dann den submit button, könnte sonst problemchen geben

• was dann da unten mit dem Bild mit dem Link drauf passiert ist mir auch noch nicht so ganz klar, aber ich würde mal behaupten der code da unten hat noch die eine oder andere ecke.

Ich muss jetzt erstma weg aber wenn bis heute Abend sich niemand anders des Problems angenommen hat, werde ich dir heute abend mal was coden.

Nur damit ich es nochmal verstehe. Du willst eine Page in der man in ein Textfeld nen suchbegriff eingibt, die ergebnisse werden in ne Combobox geladen und dann kann man über drücken des submit buttons den zugehörigen text lesen ??? Naja das alles in einer Datei zu machen ist ziemlich unnötig aufwendig. Ich überleg mir da mal ne Lösung - bis heut Abend dann.

[edit]
Ok auf gehts

PHP:
<form action="<? echo $PHP_SELF ?>" method="post">
<input type="text" name="search4" value="<? echo $search4 ;?>"><br><br>
<input type="submit" value="suchen">
</form>

//Diese <form> muss hier beendet werden, da pro Form nur ein Submit
Button möglich ist, deshalb beginnt nun für die ComboBox mit anzeigen
Button eine neue Form.

<? if($search4 != "") { ?>
 <form action="<? echo $PHP_SELF ?>" method="post">
 <select name="showID">
 <?
  mysql_connect("HOST","USERNAME","PASSWORT") or die("Keine Verbindung möglich");
  mysql_select_db("DATENBANKNAME");

  $query = "SELECT * FROM tipps WHERE tipp_name like '$search4'";
  $result = mysql_query($query);
  $nums = mysql_num_rows($result);

  $i_=_0;
  while_($i_<_$nums1) {
   $row = mysql_fetch_array($result);
   $ID = $row[tipp_ID];
   $titel = $row[tipp_name];
   echo "<option value=\"$ID\">$titel";
   $i++;
  }
  mysql_close();
 ?>
 </select>
 <input type="submit" value="anzeigen">
 </form>
<? } ?>

// Da das betätigen des anzeigen Buttons wiederrum auf die gleiche
Datei zurücklinkt, jedoch dann die Variable $showID übergeben worden
ist, wird der folgende Teil nur dann angezeigt, wenn diese Variable
gesetzt ist, d.h. man auf anzeigen geklickt hat. Vergleichbar damit,
wird auf oben nur die Combobox angezeigt, wenn die Variable $search4
nicht "" d.h. nicht leer ist.

<? if($search4 != "") {
 mysql_connect("HOST","USERNAME","PASSWORT") or die("Keine Verbindung möglich");
  mysql_select_db("DATENBANKNAME");

  $query = "SELECT * FROM tipps WHERE tipp_ID = '$search4'";
  $result = mysql_query($query);

  $row = mysql_fetch_array($result);
  $ausgabe = $row[DieSpalteWoDasDrinStehtWasDuAusgebenWillst];

  echo "$ausgabe"; // hier muss natürlich noch jede Menge HTML Code drumherum, der deinem Homepage-Design entspricht.

  mysql_close();
?>
Das dürfte es im wesentlichen gewesen sein. Mein PHP Code ist sicher nicht perfekt und eventuell sogar unter aller Sau. Ich gebe z.B. Variablen nie mit . davor aus usw. aber so ist es übersichtlich und Punkte etc. kannst du ja nocht einfügen. Ich machs so, weils bei meinem einen Projekt so funktionier und halt übersichtlicher ist. Wenn ich jetzt in der Hektik was vergessen haben sollte, oder irgendwas unklar ist, bitte sprecht mich drauf an, dann kann mans ja ändern. :)
[/edit]
 
Zuletzt bearbeitet:
Zurück