Bei mehr als einer Auswahl, sollte jeweils ein Komma erscheinen.
Hugo Zeiss
- php
0 XaraX0 nurso
Hallo,
folgendes Problem:
3 Checkboxen stehen zur Auswahl
------------------------------
Ein Button -> "Prüfen..."
Nach betätigen des Buttons, erscheinen die jeweiligen Optionen
die vorher ausgewählt waren.
z.B. ich wähle: offen und bezahlt
Ausgabe: offen bezahlt
Nun hätte ich gerne die Ausgabe so formatiert, dass nach
mehr als einer Option, ein Komma erscheint.
Ausgabe: offen, bezahlt
Grund: ich möchte später über ein sql Statement die "IN" Funktion
verwenden. Somit könnte ich mir alle Rechnungen ausgeben lassen
die offen bzw. bezahlt sind.
Im Voraus schon einmal danke für Eure Hilfe
Hugo Zeiss
....
<?
if (isset($_REQUEST['rechnung'])) {
reset($_REQUEST['rechnung']);
foreach ($_REQUEST['rechnung'] as $k => $v) {
print "$v\n";
}
}
else {
print "Es ist keine Option ausgewählt.\n";
}
?>
<body>
<form action="<? print $_SERVER['PHP_SELF'] ?>" method="post">
<input type="checkbox" name="rechnung[]" value="offen" />offen<br>
<input type="checkbox" name="rechnung[]" value="cancel" />cancel<br>
<input type="checkbox" name="rechnung[]" value="bezahlt" />abbruch<br>
<input type="submit" value="Prüfen...">
</form>
</body>
...
<?
if (isset($_REQUEST['rechnung'])) {
reset($_REQUEST['rechnung']); //was ist das??????
foreach ($_REQUEST['rechnung'] as $k => $v) {
print "$v,\n"; //da einfach nur ein komma oder was meintest Du?
}
}
else {
print "Es ist keine Option ausgewählt.\n";
}
?>
<body>
<form action="<? print $_SERVER['PHP_SELF'] ?>" method="post">
<input type="checkbox" name="rechnung[]" value="offen" />offen<br>
<input type="checkbox" name="rechnung[]" value="cancel" />cancel<br>
<input type="checkbox" name="rechnung[]" value="bezahlt" />abbruch<br>
<input type="submit" value="Prüfen...">
</form>
</body>
...
Gruß aus Berlin!
eddi
Hi Eddi,
print "$v,\n"; //da einfach nur ein komma oder was meintest Du?
dies macht mir aufjedenfall ein Komma hinter die
Option. Was ist, wenn ich aber nur eine Option auswähle
-> z.B. offen
Ausgabe: offen, -> und das möchte ich nicht
Problem ist leider noch nicht gelöst.
Gruß
Hugo
Hi Hugo
Sorecht schlau werde ich nicht daraus. Also nach erneutem püberdenken habe ich es so verstanden:
Du willst eine Variable definiren die etwas so ausieht >>>$rechnung[0],$rechnung[1],$rechnung[2],<<<aber das letzte Komma nicht
|<?
if (isset($_REQUEST['rechnung'])) {
$a=count($_REQUEST['rechnung']);
foreach ($_REQUEST['rechnung'] as $k => $v) {
global $a; //foreach-Schleifen hasse ich ja wie die Pest sieh selbts bitte noch mal nach, ob $a si richtig eingebunden wurde
$i++;
$b=$v;
if(i<($a+1))
$b.=",\n";
}
print $b; //$b ist das auch chice für die DB
}
else {
print "Es ist keine Option ausgewählt.\n";
}
?>
<body>
<form action="<? print $PHP_SELF ?>" method="post">
<input type="checkbox" name="rechnung[]" value="offen" />offen<br>
<input type="checkbox" name="rechnung[]" value="cancel" />cancel<br>
<input type="checkbox" name="rechnung[]" value="bezahlt" />abbruch<br>
<input type="submit" value="Prüfen...">
</form>
</body>
Hi Hugo
Sorecht schlau werde ich nicht daraus. Also nach erneutem püberdenken habe ich es so verstanden:
Du willst eine Variable definiren die etwas so ausieht >>>$rechnung[0],$rechnung[1],$rechnung[2],<<<aber das letzte Komma nicht
|<?
if (isset($_REQUEST['rechnung'])) {
$a=count($_REQUEST['rechnung']);
foreach ($_REQUEST['rechnung'] as $k => $v) {
global $a; //foreach-Schleifen hasse ich ja wie die Pest sieh selbts bitte noch mal nach, ob $a si richtig eingebunden wurde
$i++;
$b=$v;
if(i<$a) //fehler sorry die hitze
$b.=",\n";
}
print $b; //$b ist das auch chice für die DB
}else {
print "Es ist keine Option ausgewählt.\n";
}
?>
<body>
<form action="<? print $PHP_SELF ?>" method="post">
<input type="checkbox" name="rechnung[]" value="offen" />offen<br>
<input type="checkbox" name="rechnung[]" value="cancel" />cancel<br>
<input type="checkbox" name="rechnung[]" value="bezahlt" />abbruch<br>
<input type="submit" value="Prüfen...">
</form>
</body>
Gruß aus Berlin!
eddi
Also ich mach das immer so:
echo implode(';',$checkboxen);
und zwischen jedem Wert ist ein Semikolon...
Wenn $checkboxen leer ist dann musst du den implode unterbinden.
Hoffe das hilft weiter.
hallo
mache aus deinen checkboxen doch ein array
<input type=checkbox name=checkbox[] value=wasweisich>wasweisich
jetzt hast du auf der nächsten seite die möglichkeit das array mit foreach auszulesen und ein komma nach jedem eintrag anzuhängen.
vergesse aber nicht am ende (wenn foreach geschlossen ist) das letzte komma wegzuschneiden.
Hi
mache aus deinen checkboxen doch ein array
<input type=checkbox name=checkbox[] value=wasweisich>wasweisich
Das habe ich doch gemacht -> siehe Codeanhang
jetzt hast du auf der nächsten seite die möglichkeit das array mit foreach auszulesen und ein komma nach jedem eintrag anzuhängen.
vergesse aber nicht am ende (wenn foreach geschlossen ist) das letzte komma wegzuschneiden.
Das mit dem wegschneiden interessiert mich.
Genau das ist mein Problem.
Über Hilfestellung würde ich mich freuen.
Gruß
Hugo
HH (Hallo Hugo),
$neuer_wert = substr($alter_wert,-1);
und gut ists
Tom
HH (Hallo Hugo),
$neuer_wert = substr($alter_wert,-1);
$neuer_wert = substr($alter_wert,0,-1); // besser so!
und gut ists
Tom
Halli Hallo,
wenn es denn schon ein Array ist, kann man auch explode() benutzen. Das lässt das letzte Trennzeichen automatisch weg un dist viiiiel schneller.
Tom