[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Popup-Menü aus db füllen - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
cwenet
Beiträge: 380
Registriert: 16. Feb 2006, 10:13
Wohnort: Lake Constance

Popup-Menü aus db füllen

13. Jul 2006, 16:09

Hallo,

ich komme hier bei nicht weiter.
Ein bereits gefülltes Popup-Menü soll mit der DB abgeglichen werden.
Das heißt, wird ein identischer wert gefunden, soll selected ausgegebne werden. So sieht es bisher aus:

Code: Alles auswählen

$res = mysql_query("select * from cdbestellung ORDER BY datum ASC");
   $num = mysql_num_rows($res);

for ($i=0; $i<$num; $i++)
   {
     
     $status = mysql_result($res, $i, "status");


 //status pulldown menü vorbereiten
   $pull = "<form name='form'>";
   $pull .= "<select name='select1' size='1' onChange='surfto1(this.form)'>";
   
   if ($status=='offen') {$sel1 = "selected='selected'";}
   if ($status=='bezahlt') {$sel2 = "selected='selected'";}
   if ($status=='versendet') {$sel3 = "selected='selected'";}
   $pull .= "<option ".$sel1." value='bestellungen.php?sta=offen&id=$id'>Offen</option>";
   $pull .= "<option ".$sel2." value='bestellungen.php?sta=bezahlt&id=$id'>Bezahlt</option>";
   $pull .= "<option ".$sel3." value='bestellungen.php?sta=versendet&id=$id'>Versendet</option>";      
   
   $pull .= "</select>";
   $pull .= "</form>";
   echo " <td>$pull</td>";

}
Also jeder Datensatz hat später bei der Ausgabe sein eigenes Popup-Menü mit immer diesen 3 Values (offen, bezahlt, versendet)
Das PopUp-Menü soll jetzt immer den Wert aus der DB als selected anzeigen.

Kann mir bitte jemand dabei helfen? Danke.
Gruß Christoph

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

13. Jul 2006, 16:26

Hi,

ich versteh das Problem nicht ganz..

Gruß,
Markus

cwenet
Beiträge: 380
Registriert: 16. Feb 2006, 10:13
Wohnort: Lake Constance

13. Jul 2006, 16:44

Hallo Markus,

habe mal eine geparste PHP Datei hier abgelegt: (ohne Funktion)

http://www.cwe24.com/bestellung.html

In der Spalte Status ist nun dieses PopUp_Menü. Dieses soll immer bei jeder Zeile den gleichen Inhalt haben.

In der Datenbank steht nun im Feld Status der Wert "Bezahlt".
Jetzt soll im PopUp_Menü auch der Wert "Bezahlt" markiert werden.

Das müßte dann in HTML so aussehen:

<option selected="selected" value="index.php?wert=x">Bezahlt</option>

Ich hoffe, ich konnte es so besser rüberbringen.

Gruß
Christoph

Benutzeravatar
svenalbert
Beiträge: 1308
Registriert: 24. Nov 2005, 17:21
Wohnort: Clausthal-Zellerfeld / lower saxony
Kontaktdaten: ICQ Website

13. Jul 2006, 17:11

ich hoffe mal nicht, daß du daraus wirklich ein menü machen willst. (es ist auch eher ein pull-down-auswahlfeld, als ein popup-menü.)

ich poste dir mal einen code schnippel aus nem modul von mir, vielleicht kannst du damit was anfangen.

Code: Alles auswählen

<select name="rexname[17]" ><?
  foreach ($einheitenauswahl as $value) {
    echo '<option value="'.$value.'" ';
    if ( $rexname[17]=="$value" ) {
      echo 'selected="selected" ';
    }
    echo '>'.$value.'</option>';
  }
?></select>
$einheitenauswahl ist ein array, der px, pt usw. enthält und durch die foreach schleife jeder dort enthaltene wert als option dargestellt.
wenn der gerade angezeigte wert mit dem inhalt des gespeicherten wertes überein stimmt, dann wird das selected gesetzt.

cwenet
Beiträge: 380
Registriert: 16. Feb 2006, 10:13
Wohnort: Lake Constance

13. Jul 2006, 17:42

Hallo Sven,

danke. Ja, es soll ein Auswahlmenü werden.

Dein code schnippel hat mich weitergebracht. Es funktioniert.

:D

Gruß
Christoph

sawro
Beiträge: 57
Registriert: 24. Feb 2006, 22:46

pulldown zum 2.: zum in die tischkante beißen...

9. Okt 2006, 00:02

hi zusammen,

ich möchte daten aus einem addon mit einem pull-down-menü sortieren und entspr. ausgeben.
nach einigem rumgebastel bin ich jetzt immerhin soweit, das besagtes pulldowm-menü die gewünschten einträge enthält. Weiter habe ich eine db-abfrage zum anzeigen der ausgewählten rubrik, die jedoch immer nur den 1. datensatz ausgibt. eine horiz.linie (<hr/>), die nach jedem datensatz erscheinen soll, wird so oft angezeigt, wie datensätze vorhanden sind - und aufgerufene datensätze werden über der entspr. horiz.linie dargestellt (ds mit id4 über der 4. horiz.linie)...

hier das script für mein modul:

Code: Alles auswählen

<h1>Branche wählen</h1>
<?
//error_reporting(E_ALL);
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="get">';
echo '<div><input name="article_id" type="hidden" value="21" /></div>';
echo '<select name="branche" id="branche" size="1">';
echo '<option value="auswahl">auswahl</option>';
     $auswahl= new sql;
     $auswahl->setQuery("select * from rex_16b_branchen GROUP BY branche");
     for ($i=0;$i<$auswahl->getRows();$i++){
     if ($_GET['branche'] == $auswahl->getValue('id',$i)){$selected=" selected=\"selected\"";}
     else {$selected="";}
     echo '<option value="'.$auswahl->getValue('id',$i).'"'.$selected.'>'.$auswahl->getValue('branche',$i).'</option>';
     }
echo '</select>';
echo '<input type="submit" name="senden" value="los"/>';
echo '</form>';

echo '<h2>daten ausgeben:</h2>';

     if ($_GET['branche']){
     $auswahl= new sql;
     $auswahl->setQuery('select * from rex_16b_branchen');
     for ($i=0;$i<$auswahl->getRows();$i++){
     if ($_GET['branche'] == $auswahl->getValue('id',$i))
     {
     echo '<p>'. $auswahl->getValue('branche',$i) .': '. $auswahl->getValue('name',$i) .', '. $auswahl->getValue('id',$i) .'</p>' ;
 $auswahl->next();
       }
echo '<hr/>';
     }
   }
 ?>
schuld an meinem problem ist $i - vermute ich oder der aufruf des nächsten datensatzes ist falsch?

ich hab schon viel hier im forum gesucht, aber nichts gefunden, was mir weiter hilft. Vielleicht kann mal jemand nachschauen, was ich falsch gemacht habe oder mir einen thread im forum nennen, der mir weiter helfen könnte?

in voraus schonmal danke und lg
sabine

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

9. Okt 2006, 06:35

Hej Sabine,

was klappt denn nun nicht? Du schreibst das die Datensätze ausgegeben werden und nach jedem eine hori Linie folgt. Ist es nicht das, was du haben möchtest?

vg Thomas

sawro
Beiträge: 57
Registriert: 24. Feb 2006, 22:46

9. Okt 2006, 10:34

hi thomas,

- es werden nicht alle vorhandenen einträge einer rubrik angezeigt, sondern immer nur der erste.

- die horiz.linien werden aber so oft dargestellt, wie insgesamt datensätze in der tabelle (in allen rubriken) vorhanden sind.

z.b. branche "Holz"

vorhandene einträge:

schreiner müller
schreiner meier
schreiner schmidt

nach meinem script ausgegebene einträge: nur schreiner müller
siehe auch *

so sieht die tabelle aus:

id | name | branche
------------------------------------
1 | schreiner müller | holz
2 | agentur blubb | internet
3 | schreiner schmidt | holz
4 | schreiner meier | holz
5 | gärtner blume | gartenbau

* und so die ausgabe für die rubrik holz aus:

schreiner müller
________________(1.hr)
________________(2.hr)
________________(3.hr)
________________(4.hr)
________________(5.hr)

es sollten eigentlich 3 horiz.linien sein und drei einträge für holz :shock:

und die ausgabe für die rubrik internet:

________________(1.hr)
agentur blubb
________________(2.hr)
________________(usw.)
________________
________________

es sollten eigentlich 1 horiz.linie sein und ein eintrag für internet

lg
sabine

sawro
Beiträge: 57
Registriert: 24. Feb 2006, 22:46

9. Okt 2006, 23:35

hi zusammen,

hab die lösung gefunden :D

wen's interessiert: ich habe das falsche feld abgefragt. im geposteten script ist das die zeile 25:

vorher:

Code: Alles auswählen

 if ($_GET['branche'] == $auswahl->getValue('id',$i))
nachher:

Code: Alles auswählen

if ($_GET['branche'] == $auswahl->getValue('feld',$i))
und peinlich, aber wahr: die horiz.linie stand "eine geschwungene klammer zu tief" *grmpf...

lg
sabine

Zurück zu „Sonstiges“