CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
31.12.2012, 14:08:52
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Selectfeld aus DB - Auswahl nach versenden erhalten
Zitat:
Zitat von meikel
Peinsam...
|
Wohl nicht dein Tag... ;-)
Weiterhin: $obj->selected,
:-) :-) :-) :-)
|
31.12.2012, 14:12:59
|
Anfänger
|
|
Registriert seit: Nov 2009
Alter: 68
Beiträge: 51
|
|
AW: Selectfeld aus DB - Auswahl nach versenden erhalten
....hmm, leider immer noch nicht.
Im Selectfeld werden 11x 0 angezeigt
Code:
Array ( [SCHICHT] => 0 )
Inhalt Spalte `schicht`:
Code:
Bitte auswählen!
PP1.1
PP1.2
PP1.3
*
PP2.1
PP2.2
PP2.3
*
FW3.1
FW3.2
PHP-Code:
<select name="SCHICHT" id="SCHICHT">
<?php
$db = new mysqli($mysqlhost, $mysqluser, $mysqlpwd, $mysqldb);
if ($db->connect_error) {
die('Connect Error (' . $db->connect_errno . ') '
. $db->connect_error);
}
$sql = 'SELECT `schicht` FROM dropdown_schicht';
if (false === ($result = $db->query($sql) ))
die('SQL Error: ' . $db->error() );
while($obj = $result->fetch_object() ){
$sel = '';
if (! empty($_POST['SCHICHT']) AND $_POST['SCHICHT'] == $obj->schicht)
$sel = 'selected="selected"';
elseif ($obj->schicht == 0)
$sel = 'selected';
printf('<option value="%1$d" %2$s>%1$d</option>' . "\n",
$obj->schicht,
$sel);
}
$result->close();
?>
</select>
|
31.12.2012, 14:25:30
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Selectfeld aus DB - Auswahl nach versenden erhalten
Zitat:
Zitat von DokuLeseHemmung
Wohl nicht dein Tag... ;-)
Weiterhin: $obj->selected,
:-) :-) :-) :-)
|
Naja, meinen fehlerhaften Beitrag kann/darf ich leider nicht mehr korrigieren.
|
31.12.2012, 14:40:38
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Selectfeld aus DB - Auswahl nach versenden erhalten
Ursprünglich ging es mir eigentlich nur um den Hinweis, daß die while() und FOR() Schleifenkonstruktion sinnfrei waren.
Zitat:
Zitat von inspiron
Im Selectfeld werden 11x 0 angezeigt
|
Stimmt, weil $_POST['SCHICHT'] nicht nach dem Wert gefragt wird. Da hatte ich Deinen Kram unbesehen übernommen, weil ich nicht weiß, wie die Schichtspalte tatsächlich heißt und was dort drin steht.
Hätt' ich ma lieber ins Glas geguckt... <ggg>
Die Zeile mußt Du natürlich anpassen:
PHP-Code:
$sql = 'SELECT `schicht` FROM dropdown_schicht';
In Spaltenliste gehört natürlich nicht mein Fantasiename sondern der korrekte Name rein.
Die Objekte müssen dann natürlich auch angepaßt werden
PHP-Code:
... $obj->spaltenbezeichner ...
Hier hatte ich auf Deine Konstruktion zurückgegriffen
PHP-Code:
<?php $sel = ''; if (! empty($_POST['SCHICHT']) AND $_POST['SCHICHT'] == $obj->schicht) $sel = 'selected="selected"'; # XHTML Kompatibilität elseif ($obj->schicht == 0) $sel = 'selected'; printf('<option value="%1$d" %2$s>%1$d</option>' . "\n", $obj->schicht, $sel); } ?>
Problematisch könnte das sein:
wenn in der Tabelle ein String und keine Integerzahl steht.
Sonst muß das so aussehen:
1. Parameter: Typ string
|
31.12.2012, 15:01:40
|
Anfänger
|
|
Registriert seit: Nov 2009
Alter: 68
Beiträge: 51
|
|
AW: Selectfeld aus DB - Auswahl nach versenden erhalten
Zitat:
Zitat von meikel
Hätt' ich ma lieber ins Glas geguckt... <ggg>
Die Zeile mußt Du natürlich anpassen:
PHP-Code:
$sql = 'SELECT `schicht` FROM dropdown_schicht';
In Spaltenliste gehört natürlich nicht mein Fantasiename sondern der korrekte Name rein.
Die Objekte müssen dann natürlich auch angepaßt werden
PHP-Code:
... $obj->spaltenbezeichner ...
|
...die Spalte heißt ja `schicht`!
|
31.12.2012, 15:07:17
|
Anfänger
|
|
Registriert seit: Nov 2009
Alter: 68
Beiträge: 51
|
|
AW: Selectfeld aus DB - Auswahl nach versenden erhalten
...aber wo merkt er sich denn den zuletzt ausgewählten Wert?
Beim versenden springt das Select wieder auf den untersten Eintrag.
Code:
Bitte auswählen!
PP1.1
PP1.2
PP1.3
*
PP2.1
PP2.2
PP2.3
*
FW3.1
FW3.2
Array
(
[SCHICHT] => FW3.2
)
Gruß
|
31.12.2012, 16:12:59
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Selectfeld aus DB - Auswahl nach versenden erhalten
Zitat:
Zitat von inspiron
...aber wo merkt er sich denn den zuletzt ausgewählten Wert?
|
Wenn zwischen dem POST Request und dem Anzeigen des Formulars kein weiterer Klick erfolgt, steht der letzte ausgewählte Eintrag in $_POST['SCHICHT']
Zitat:
Beim versenden springt das Select wieder auf den untersten Eintrag.
|
Da stimmt was nicht mit Deinem HTML. Das seleted Attribut beim SELECT Tag markiert den gewünschten Eintrag. Oder die Einträge, falls es um ein Listenfeld mit Mehrfachauswahl handeln sollte.
Falls der Eintrag länger gültig sein soll, mußt Du eine PHP basierte Session einrichten. Der Apache leidet nämlich unter Alzheimer: sobald die letzte Scriptzeile eines Requestes ausgeführt wurde, vergißt die Rothaut alles. Der PHP Sessionmechanismus steigert den "Wiedererkennungswert" so, daß alles, nach session_start() was in $_SESSION steht, beim normalen Scriptende serialisiert in einem Sessionfile gespeichert wird. Dazu ist es erforderlich, daß der Client nix gegen den Keks (Cookie) hat, der die Session_id beinhaltet. Ohne Keks gehts auch, ist aber mehr oder weniger umständlich zu händeln, weil Du bei jedem Link und jedem Formular session_name und session_id als GET oder POST Parameter übergeben mußt.
Damit hab ich ein Problem:
Zitat:
Code:
Bitte auswählen!
PP1.1
PP1.2
PP1.3
*
PP2.1
PP2.2
PP2.3
*
FW3.1
FW3.2
|
Bevor ich weiterrate:
poste erst mal das CREATE TABLE und ein paar typische INSERT INTO. Beides kannst Du mit dem (Dir hoffentlich bekannten) PhpMyAdmin (Menüpunkt Export) erzeugen.
Ich weiß nicht, woher PP1.1 kommt, was der Stern da soll und woher 'Bitte auswählen' stammt.
Da "schicht" offenbar ein String sein soll, mußt Du printf() natürlich sagen, das der betreffende Parameter ein String ist.
die Parametertypen sind im Handbuch unter sprintf() erklärt.
Ich hatte vermutet, es wäre eine Intergerzahl, weil Du in Deinem Kram einen Vergleich mit 0 hattest. 'nen String vergleicht man ja nun nicht mit ner Integer Null.
|
31.12.2012, 17:09:59
|
Anfänger
|
|
Registriert seit: Nov 2009
Alter: 68
Beiträge: 51
|
|
AW: Selectfeld aus DB - Auswahl nach versenden erhalten
Zitat:
Zitat von meikel
Damit hab ich ein Problem:
Bevor ich weiterrate:
poste erst mal das CREATE TABLE und ein paar typische INSERT INTO. Beides kannst Du mit dem (Dir hoffentlich bekannten) PhpMyAdmin (Menüpunkt Export) erzeugen.
Ich weiß nicht, woher PP1.1 kommt, was der Stern da soll und woher 'Bitte auswählen' stammt.
|
....ich bin jetzt auf Arbeit, kann das Table erst morgen wieder von zu Hause posten.
Danke erst einmal
und 'ne juten Rutsch ins 2013!
Geändert von inspiron (31.12.2012 um 17:24:42 Uhr)
|
31.12.2012, 17:26:23
|
Anfänger
|
|
Registriert seit: Nov 2009
Alter: 68
Beiträge: 51
|
|
AW: Selectfeld aus DB - Auswahl nach versenden erhalten
...ich sehe gerade, ich habe hier Wlan. :-)
Das "*" Sternchen ist nur ein optischer Trenner um die Schichten voneinander zu unterscheiden.
Code:
--
-- Tabellenstruktur für Tabelle `dropdown_schicht`
--
CREATE TABLE IF NOT EXISTS `dropdown_schicht` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`schicht` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
--
-- Daten für Tabelle `dropdown_schicht`
--
INSERT INTO `dropdown_schicht` (`id`, `schicht`) VALUES
(1, 'Bitte auswählen! '),
(2, 'PP1.1'),
(3, 'PP1.2'),
(4, 'PP1.3'),
(5, '*'),
(6, 'PP2.1'),
(7, 'PP2.2'),
(8, 'PP2.3'),
(9, '*'),
(10, 'FW3.1'),
(11, 'FW3.2');
|
31.12.2012, 18:25:48
|
Anfänger
|
|
Registriert seit: Nov 2009
Alter: 68
Beiträge: 51
|
|
AW: Selectfeld aus DB - Auswahl nach versenden erhalten
Zitat:
Zitat von meikel
Das stimmt - ich blick auch nicht durch, was Du da anstellst.
|
...ursprünglich wurde es ohne DB, so gelöst. Das Problem ist, das man für jede Änderung in die Programmierung muss.
Daher hatte ich gedacht man kann das array aus der DB füllen, den Rest anpassen und weiter verwenden.
Gruß
PHP-Code:
<label class="schicht">Schicht</label> <select name="SCHICHT" id="SCHICHT"> <?php //Beim Senden eines Formulars die gewählte Auswahl in der Auswahlliste beibehalten. $array = array(1 => "Bitte auswählen! ", "PP1.1", "PP1.2", "PP1.3", "*", "PP2.1", "PP2.2", "PP2.3", "*", "FW3.1", "FW3.2");
for ($a = 1; $a <= 11; $a++) { echo " <option value=\"$array[$a]\""; if ($_POST["SCHICHT"] == $array[$a]) { echo " selected"; } else { if ($_POST["SCHICHT"] == "" && $a == 1) { echo " selected"; } } echo ">$array[$a]</option>\n"; } ?> </select>
Geändert von inspiron (31.12.2012 um 18:48:50 Uhr)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:55:56 Uhr.
|