Webdesign in Siegen

Variablen in Drop-down Menü "ausgeben"

Fragen zum Thema PHP können hier gestellt werden

Moderator: Basti

Variablen in Drop-down Menü "ausgeben"

Beitragvon Basti am 07.07.2006, 22:43

Hi,

ich arbeite schon seid einiger Zeit an einem Newsscript mit MySQL. Bisher habe ich schon eine Löschen und Aktualisieren-Funktion eingebaut. Ich bin das Script aber noch am Optimieren, um die Handhabung zu verbessern.

Ich habe einen Wert in der MySQL Tabelle, in der ich eine "Grafik" abspeicher für die jeweiligen News (also z.B. "Projekte" --> "projekte.png"). Beim Erstellen der News ist das auch kein Problem, ich benutze dafür ein Drop-down Menü.

Code: Alles auswählen
<select>
      <option>Projekte</option>
      <option>Tutorials</option>
      <option>Artwork</option>
      <option>W W W</option>
      <option>Download</option>
      </select>


Später im Script gebe ich den Inhalt meiner Datenbank aus, in dem dann auch die Grafik erscheint. Bisher habe ich den Inhalt in der Ändern-Funktion einfach in normalen <input>-Feldern ausgeben lassen, was ja bei Sachen wie dem Titel oder Text ja auch kein Problem ist.

Jetzt habe ich aber vor, auch in der Ändern-Funktion ein Drop-down Menü für die Grafiken zu machen. Dabei muss natürlich die vorher festgelegte Grafik "selected" sein, damit man weiß, welche Grafik zur Zeit verwendet wird.

Hat vielleicht jemand eine Idee wie ich das Lösen könnte? Ich muss es irgendwie hinbekommen, dass immer die richtige "Grafik" angezeigt wird, und die anderen aber noch als Auswahl zum Ändern bleiben.

Die Variable hat in meiner MySQL-Tabelle den Namen "Grafik" und wird vorher abgefragt, ist also bekannt. Nun muss sie nur noch "verarbeitet" werden ;).


Über eine hilfreiche Antwort freue ich mich natürlich ;)
Benutzeravatar
Basti
Moderator
 
Beiträge: 1791
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach

Beitragvon Dac-XP am 08.07.2006, 10:10

Code: Alles auswählen
  $query = "SELECT [id], [bildname] FROM [Bildtabelle]";
  $erg = mysql_query($erg);

  echo "<select>";

  while($obj = mysql_fetch_object($erg))
    {
      echo "<option>".$obj->[bildname]."</option>";
    }

  echo "</select>";


Damit wird die SELECT-Box generiert.
Brauchst du jetzt auch das Script zum Speichern des aktuellen Bildes?
Dann müsstest du dir nämlich vorher schon Gendanken über die Tabellen machen.
MfG Dac! ;)
Benutzeravatar
Dac-XP
Mitglied
 
Beiträge: 1855
Registriert: 23.06.2005, 19:47
Wohnort: Mönchengladbach / NRW

Beitragvon Basti am 08.07.2006, 11:55

Sry, ich glaub du hast mich nicht ganz richtig verstanden ;), vlt. hab ich es ja was schlecht beschrieben.

Also, ich lese vorher alle Daten aus der MySQL-Tabelle aus, und lasse zum Beispiel den Titel in einem <input>-Feld über $Result->Titel ausgeben. Dann kann ich es ja einfach verändern und danach wieder abspeichern. Das hatte ich bisher bei der Grafik auch, aber ich wollte auch dort ein Drop-down Menü machen, in dem immer die richtige Grafik selected ist (ist ja je nach dem immer eine andere), zugleich die anderen aber auch noch als weitere Auswahlmöglichkeiten zur Verfügung stehen.

Hier mal ein Bild zur Veranschaulichung:

Bild
Benutzeravatar
Basti
Moderator
 
Beiträge: 1791
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach

Beitragvon Dac-XP am 08.07.2006, 12:03

Das folgende Script setzt vorraus, dass du die BildID schon hast (von dem Bild, dass angewählt sein soll).

Code: Alles auswählen
  $query = "SELECT [id], [bildname] FROM [Bildtabelle]";
  $erg = mysql_query($erg);

  echo "<select>";

  while($obj = mysql_fetch_object($erg))
    {
      if($[aktuelleBildID] == $obj->[id])
        {
          echo "<option>".$obj->[bildname]."</option>";
        }
      else
        {
          echo "<option>".$obj->[bildname]."</option>";
        }
    }

  echo "</select>";


Jetzt habe ich dich verstanden ;)
Hatte sogar vor, das als erstes als Bonus hinzuzufügen, habs dann aber doch gelassen.
Ist halt einfach das Stichwort "selected" in dem <option>-Tag
Zuletzt geändert von Dac-XP am 08.07.2006, 13:09, insgesamt 2-mal geändert.
MfG Dac! ;)
Benutzeravatar
Dac-XP
Mitglied
 
Beiträge: 1855
Registriert: 23.06.2005, 19:47
Wohnort: Mönchengladbach / NRW

Beitragvon Basti am 08.07.2006, 13:02

Hm.. ich glaub das ist noch immer nicht das richtige, weil doch nicht enthalten ist, dass die richtige "selected" wird. Also abrufen brauche ich die Variable sowieso nicht nochmal extra, das habe ich vorher schon im Script.

Also ist eine Variable bei Grafik für jeden einzelnen Eintrag bei den News gegeben, zum Beispiel steht dann "projekte.png" in meiner MySQL-Tabelle. Dieser Wert ist dann bekannt. Dann müssten am Anfang alle Kategorien also solche festegelegt sein, und wenn dann eine der Kategorien mit der in der MySQL-Tabelle übereinstimmt, wird bei dieser in der Ausgabe ein "selected" hinzugefügt, die anderen werden einfach normal in einen <option>-Tag eingefügt.

Vom Prinzip müsste das so gehen, leider bin ich in PHP nur noch nicht so weit, um das selbst zu schreiben ;)

//edit: Hab mal selbst was ausprobiert, also von der Funktionsweise wie grade gesagt. Hab's nur noch nicht ausprobiert. Geht das denn so? Also sagt mir bitte bescheid ob das so richtig ist, weil ich mich mit diesen Funktionen noch nicht so auskenne.

Code: Alles auswählen
$ResultPointer = mysql_query("SELECT Grafik FROM $TableNews ORDER BY Erstellt DESC LIMIT $MaximaleAnzahlNews");

$kategorien = array('projekte.png', 'tutorials.png', 'artwork.png', 'download.png', 'www.png');
$Result->Erstellt = $aktuelleKategorie;

foreach($kategorien as $kategorie)
{

if($kategorie == $aktuelleKategorie) {
echo"<option>$kategorie</option>";
}
else {
echo"<option>$kategorie</option>";
}

}


Also in der if-Schleife muss dann eigentlich <option>$kategorie</option> stehen, und im else Teil dann nur ohne das "selected". Komischerweise hat das "code"-Script hier im Forum das aber "weggeschnitten" ^^
Zuletzt geändert von Basti am 08.07.2006, 13:15, insgesamt 1-mal geändert.
Benutzeravatar
Basti
Moderator
 
Beiträge: 1791
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach

Beitragvon Dac-XP am 08.07.2006, 13:12

Das kann doch nicht wahr sein mit dem Syntaxhighlighting hier! Das wurde wieder rausgeschnitten...

Bild
MfG Dac! ;)
Benutzeravatar
Dac-XP
Mitglied
 
Beiträge: 1855
Registriert: 23.06.2005, 19:47
Wohnort: Mönchengladbach / NRW

Beitragvon Basti am 08.07.2006, 13:19

Stimmt, bei mir wurde auch das wichtige rausgeschnitten. Hier mein Screenshot:

Bild

Kannst dir den Code ja mal anschauen und mir sagen ob es so funktionieren könnte.

//edit: Statt $Result->Erstellt gehört natürlich $Result->Grafik dahin, hab mich ausversehen vertippt.
Benutzeravatar
Basti
Moderator
 
Beiträge: 1791
Registriert: 15.06.2006, 17:33
Wohnort: Rheinbreitbach

Beitragvon Dac-XP am 08.07.2006, 13:22

Dann haben wirs ja jetzt :wink:
MfG Dac! ;)
Benutzeravatar
Dac-XP
Mitglied
 
Beiträge: 1855
Registriert: 23.06.2005, 19:47
Wohnort: Mönchengladbach / NRW

Re: Variablen in Drop-down Menü "ausgeben"

Beitragvon susi1600 am 26.04.2008, 17:47

Das ist ja jetzt schon einige Zeit her, aber ich in Anbetracht meines Problems, passt es hier super dazu.
Habe ein Array, dessen Werte ich mit foreach also options in einer select-box ausgebe.
Im Backend für die Bearbeitung eines Artikels, soll die richtige option vorselektiert sein - hier ist mein Problem: es wird kein Wert selected.

Hier mal mein Code:
Code: Alles auswählen
      

$result = mysql_query("SELECT * FROM $rubrik WHERE id='$id'") OR die(mysql_error());    //$rubrik und $id werden übergeben

$kategorie= $row['kategorie'];   //liest die Kategorie aus, in der sich der Artikel befindet
$kategorien = array("Faschingskleid", "Reitrock", "Kinderreitkleid", "Accessoires", "Kettenhemd");   //Die sind alle möglichen Kategorien
      
echo   '<select name="kategorie"> ';

foreach ($kategorien as $option) {
                     
if ($option == $kategorie) {
echo '<option selected="selected" value="'.$option.'">'.$option.'</option>';
}
else {
echo '<option value="'.$option.'">'.$option.'</option>';
}
      
}
echo '</select>';



Was fehlt denn nun hier, dass die richtige Kategorie selectiert wird?
Oder was ist falsch?
susi1600
Mitglied
 
Beiträge: 23
Registriert: 06.10.2007, 19:10

Re: Variablen in Drop-down Menü "ausgeben"

Beitragvon Eyecatcher am 26.04.2008, 18:38

Ich find auf die schnelle keinen Fehler.
Hast du sichergestellt, dass beim Speichern die Kategorien, welche in die Datenbank übernommen werden, eins zu eins mit dem Array Kategorien übereinstimmen?
Demnächst: php-studio.com
Benutzeravatar
Eyecatcher
Mitglied
 
Beiträge: 249
Registriert: 01.03.2008, 21:56
Wohnort: Espelkamp

Re: Variablen in Drop-down Menü "ausgeben"

Beitragvon susi1600 am 26.04.2008, 18:40

Ja, hab mir die $kategorie schon ausgeben lassen, stimmt genau überein... :-(
susi1600
Mitglied
 
Beiträge: 23
Registriert: 06.10.2007, 19:10

Re: Variablen in Drop-down Menü "ausgeben"

Beitragvon susi1600 am 28.04.2008, 14:00

Also, für die die es interessiert, die Lösung:

für DOCTYPE XHTML stimmt die Lösung die ich geschrieben habe, also selected="selected"
für DOCTYPE HTML funktionierts nur mit selected....
susi1600
Mitglied
 
Beiträge: 23
Registriert: 06.10.2007, 19:10


Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast