Font
[thread]3551[/thread]

Enum Inhalte in Select-Felder ausgeben

Readers: 8


<< >> 10 entries, 1 page
maco
 2005-03-24 22:00
#33086 #33086
User since
2005-02-22
27 articles
BenutzerIn
[default_avatar]
Hi,

ich hab in einer Tabelle, eine Spalte ENUM art('1','2','3')
Ich hole mit Select-Anweisung unter andrem den Wert der für den Datensatz als art gespeichert ist.

Nun will ich dem Benutzer anbieten, dass er den Wert für art ändern kann.
Ich liste also die Attributswerte für art in einem Select-Feld auf, von denen er dann einen wählen kann.

Allerdings muss ich zuvor ja auch den aktuellen Wert für art anzeigen.

Ja und genau das ist das Problem: wenn ich jetzt zum Ändern alle Enum-Werte aufliste, dann habe ich eine Wiederholung in dem Select-Feld für den aktuellen Wert!

Hoffe, es war einigermassen verständlich!!

Grüß
esskar
 2005-03-24 22:36
#33087 #33087
User since
2003-08-04
7321 articles
ModeratorIn

user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
C:\Dokumente und Einstellungen\sak>perl
my @artenum = qw/1 2 3 4/;
my $artvalue = "3";

foreach (@artenum) {
my $selected = $artvalue eq $_ ? 'selected="selected"' : '';
print qq~<option $selected value="$_">$_</option>\n~;
}
^Z

<option value="1">1</option>
<option value="2">2</option>
<option selected="selected" value="3">3</option>
<option value="4">4</option>
maco
 2005-03-26 13:09
#33088 #33088
User since
2005-02-22
27 articles
BenutzerIn
[default_avatar]
Hi Esskar;

Danke, aber wofür ist das hier in dem Code:
^Z

Ich denke das ist ein Tippfehler.

Aber ich verstehe nicht, wie dein Code mein Problem löst!
Grüß\n\n

<!--EDIT|maco|1111838102-->
[E|B]
 2005-03-26 14:07
#33089 #33089
User since
2003-08-08
2561 articles
HausmeisterIn
[Homepage] [default_avatar]
Das ist kein Tippfehler, sondern führt den Perl Code in einer Windows Command-Prompt aus.
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
maco
 2005-03-26 14:13
#33090 #33090
User since
2005-02-22
27 articles
BenutzerIn
[default_avatar]
achso!!!!!!!!!!!!!!!!!!!

Wie auch immer, ich hab das anders gelöst!

Danke Euch!\n\n

<!--EDIT|maco|1111839356-->
renee
 2005-03-26 14:15
#33091 #33091
User since
2003-08-04
14367 articles
ModeratorIn
[Homepage] [default_avatar]
Speichere das Ergebnis Deiner Datenbank-Abfrage in $artvalue und nimm den Code von esskar. Dann klappt das schon!

Wenn Du etwas Code zeigen würdest könnte man auch etwas detaillierter antworten!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
maco
 2005-03-26 14:21
#33092 #33092
User since
2005-02-22
27 articles
BenutzerIn
[default_avatar]
Also ich teste das erstmal in einem eigenständigen Skript und implementiere das dann in meinem Programm. Hab es nun so gelöst:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl
use strict;
use CGI::Carp qw( fatalsToBrowser );
print "Content-type: text/plain\n\n";

my @recordset =qw/test auftr 1/;
my @artenum = qw/1 2 3 4/;
my $artvalue = $recordset[2];

print "<form name='form1'>
<select name='status' size='1'>
<option value=$artvalue>$artvalue</option>";

foreach (@artenum) {
if (!($artvalue eq $_)){
print "<option value=$_>$_</option>";

}
}
print "</select></form>";
[E|B]
 2005-03-26 14:55
#33093 #33093
User since
2003-08-08
2561 articles
HausmeisterIn
[Homepage] [default_avatar]
Nimm anstatt !($artvalue eq $_) lieber $artvalue ne $_.
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
pq
 2005-03-26 16:07
#33094 #33094
User since
2003-08-04
12190 articles
Admin1
[Homepage]
user image
[E|B
,26.03.2005, 13:55]Nimm anstatt !($artvalue eq $_) lieber $artvalue ne $_.

oder unless
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
adomanim
 2019-12-25 18:18
#191027 #191027
User since
2019-12-25
1 article
BenutzerIn
[default_avatar]
Ok, ich habe das auf viele verschiedene Arten gemacht und ich habe einen bevorzugten Weg, dies zu tun. Dies sind einige Optionen, die ich nicht so sehr bevorzuge:

Speichern in einer Datenbank: Das Speichern der Optionen in einer Datenbank ist in Ordnung, es ist jedoch etwas langsam und unpraktisch, die Datenbank abzufragen, um die Namen der Optionen zu erhalten. Ich glaube einfach nicht, dass die Datenbank der richtige Ort ist, um etwas zu speichern, das vom Endbenutzer der Software niemals geändert wird.
.
Last edited: 2019-12-25 19:34:21 +0100 (CET)
<< >> 10 entries, 1 page



View all threads created 2005-03-24 22:00.