SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 31.12.2012, 14:08:52
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Selectfeld aus DB - Auswahl nach versenden erhalten

Zitat:
Zitat von meikel Beitrag anzeigen
Peinsam...
Wohl nicht dein Tag... ;-)
Weiterhin: $obj->selected,
:-) :-) :-) :-)
Mit Zitat antworten
  #12  
Alt 31.12.2012, 14:12:59
inspiron inspiron ist offline
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>
Mit Zitat antworten
  #13  
Alt 31.12.2012, 14:25:30
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
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 Beitrag anzeigen
Wohl nicht dein Tag... ;-)
Weiterhin: $obj->selected,
:-) :-) :-) :-)
Naja, meinen fehlerhaften Beitrag kann/darf ich leider nicht mehr korrigieren.
Mit Zitat antworten
  #14  
Alt 31.12.2012, 14:40:38
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
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 Beitrag anzeigen
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:
PHP-Code:
%1$d 
wenn in der Tabelle ein String und keine Integerzahl steht.
Sonst muß das so aussehen:
PHP-Code:
%1$s 
1. Parameter: Typ string
Mit Zitat antworten
  #15  
Alt 31.12.2012, 15:01:40
inspiron inspiron ist offline
Anfänger
 
Registriert seit: Nov 2009
Alter: 68
Beiträge: 51
AW: Selectfeld aus DB - Auswahl nach versenden erhalten

Zitat:
Zitat von meikel Beitrag anzeigen
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`!
Mit Zitat antworten
  #16  
Alt 31.12.2012, 15:07:17
inspiron inspiron ist offline
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ß
Mit Zitat antworten
  #17  
Alt 31.12.2012, 16:12:59
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
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 Beitrag anzeigen
...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.
Mit Zitat antworten
  #18  
Alt 31.12.2012, 17:09:59
inspiron inspiron ist offline
Anfänger
 
Registriert seit: Nov 2009
Alter: 68
Beiträge: 51
AW: Selectfeld aus DB - Auswahl nach versenden erhalten

Zitat:
Zitat von meikel Beitrag anzeigen

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)
Mit Zitat antworten
  #19  
Alt 31.12.2012, 17:26:23
inspiron inspiron ist offline
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');
Mit Zitat antworten
  #20  
Alt 31.12.2012, 18:25:48
inspiron inspiron ist offline
Anfänger
 
Registriert seit: Nov 2009
Alter: 68
Beiträge: 51
AW: Selectfeld aus DB - Auswahl nach versenden erhalten

Zitat:
Zitat von meikel Beitrag anzeigen
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(=> "Bitte ausw&auml;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)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Dropdownmenü Auswahl auf Unterseite XY anzeigen? Clueso PHP Grundlagen 1 03.10.2010 13:53:57
Pulldown Auswahl abfragen/verarbeiten ansap PHP Grundlagen 7 07.01.2009 20:19:16
viele Newsletter ohne Spameinschätzung versenden Thomas H. Apache HTTP-Server 1 24.07.2008 11:15:19
in select multiple Auswahl löschen aviral HTML, CSS und JavaScript Help! 1 29.02.2004 01:01:09
Neue Nachricht erhalten n4pO PHP Grundlagen 1 12.02.2004 13:31:48


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:55:56 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt