homepage-forum.de - Hilfe für Webmaster!
 
 




meine-erste-homepage.com Heutige Beiträge Wer ist online? Kontakt Impressum & Forenregeln
Zurück   homepage-forum.de - Hilfe für Webmaster! > 1 - Homepage-Forum > 1.3 - Serverseitige Sprachen > 1.3.1 - PHP / MySQL

Antwort
 
Themen-Optionen Ansicht
Alt 06.05.2012, 15:49   #1
Schaeferly
Meister
 
Registriert seit: 17.07.2011
Beiträge: 305
Schaeferly befindet sich auf einem aufstrebenden Ast
Frage Optionsfeld-Problem mit Übergabe

Hi,

also ich habe auf meiner Website das Thema Optionsfelder bis heute immer hinausgezögert weil ich da immer wieder auf Probleme gestossen bin. Nun ich brauche es aber.

Kurz was ich gerade habe:

PHP-Code:
<select id="land" name="land" class="......">
    

      <? $land mysql_query("SELECT * FROM laender");
         while (
$la mysql_fetch_array($land)){
         echo
" <option value=0 Besucher selected>$la[kfz] - $la[land]</A></option>";
         };
      
?>
        <option value=0 selected></A></option>
Also das Problem keine "festen" Werte sondern aus der Datenbank die gesamte Liste welche zur Auswahl steht.

Die Tabelle ist in id, kfz und land aufgeteilt also nichts sehr umfassendes oder so.

Nun bis dahin funktioniert das mit der Ausgabe auch noch.

PHP-Code:
...
   elseif (
$land == 0):
        
$updateland="<span class=\"inkorrekt\">!!!</span>"
... 
Mit diesen Funktionsausschnitt prüfe ich ob überhaupt ein Eintrag der Liste ausgewählt wurde wenn nicht dann sollen halt !!! angezeigt werden ansonsten läd das Script weiter.

Bis dahin scheint es auch noch zu funktionieren also Ausrufezeichen kommen, wenn nichts ausgewählt wurde.

Habe momentan einen Zwischenspeicher als extra Tabelle in diese schreibe ich die Werte gerade zum Testen rein.

PHP-Code:
mysql_query("UPDATE tabelle...

SET      land = '$land',

WHERE ...

"

Dies mache ich mit dieser genannten Funktion, also ein Datensatz entsprechend ist vorhanden. Allerdings wird mir immer nur eine 1 reingeschrieben (Denke der erste Listeneintrag) --> Das heisst ob Auswahl oder nicht der User nimmt immer das erste


Kann mir jemand sagen wie ich das hinbekomme das ich anhand von der id aus der Tabelle die Zahl bestimmen kann welche in DB "ge-up-datet" wird?

Google hilft mir nicht gleich mal vorneweg hab schon stundenlang bisschen gesucht aber nie das passende gefunden was mit meinen Problem zusammenpasst.


Schaeferly
Schaeferly ist offline   Mit Zitat antworten
Werbung



Alt 06.05.2012, 19:27   #2
threadi
Pharao
 
Registriert seit: 03.06.2006
Ort: Leipzig
Beiträge: 4.117
threadi sorgt für eine eindrucksvolle Atmosphärethreadi sorgt für eine eindrucksvolle Atmosphäre
Standard AW: Optionsfeld-Problem mit Übergabe

Dein Code hier ist fehlerhaft:

PHP-Code:
echo" <option value=0 Besucher selected>$la[kfz] - $la[land]</A></option>"
Richtig wäre:
PHP-Code:
echo '<option value='".$la["id"].">".$la[kfz]." ".$la[land]."</option>"; 
Dadurch wird die ID des ausgewählten Landes an das verarbeitende Script übergeben. Auf den Wert kannst Du dann mit

PHP-Code:
$_REQUEST["land"
zugreifen. Die Variable $land die Du verwendest hast, musst Du erst damit füllen. Also:

PHP-Code:
$land $_REQUEST["land"]; 
Um zu prüfen, ob ein Wert ausgewählt wurde, musst Du danach folgendes schreiben:

PHP-Code:
if( $land <= ){ echo "nichts ausgewählt"; } 
threadi ist offline   Mit Zitat antworten
Alt 06.05.2012, 20:08   #3
Schaeferly
Meister
 
Registriert seit: 17.07.2011
Beiträge: 305
Themenstarter
Schaeferly befindet sich auf einem aufstrebenden Ast
Standard AW: Optionsfeld-Problem mit Übergabe

Guten Abend,

thx

Zitat:
PHP-Code:
Richtig wäre:
PHP-Code:
echo 
'<option value='".$la["id"].">".$la[kfz]." ".$la[land]."</option>"; 
War noch ein kleiner Fehler trotzdem drinne mit dem es nicht ging also nur Anführungszeichen

PHP-Code:
 echo "<option value='".$la["id"]."'>".$la[kfz]." - ".$la[land]."</option>"
Aber so funktioniert es wunderbar


Schaeferly
Schaeferly ist offline   Mit Zitat antworten
Alt 08.05.2012, 20:29   #4
Schaeferly
Meister
 
Registriert seit: 17.07.2011
Beiträge: 305
Themenstarter
Schaeferly befindet sich auf einem aufstrebenden Ast
Frage AW: Optionsfeld-Problem mit Übergabe

Guten Abend,

ich möchte jetzt kein neues Thema anfangen da es fast das selbe betreffen könnte. Leider finde ich einfach keine Lösung wie ich das richtig angehen kann.

Um darauf gleich einmal einzugehen:

Zitat:
PHP-Code:
echo" <option value=0 Besucher selected>$la[kfz] - $la[land]</A></option>"
Also in Tabelle mal kurz gefasst jetzt stehen 3 Datensätze:

id: 1 ; land: deutschland
id: 2 ; land: österreich
id: 3 ; land: schweiz


Nun aber zu meinen kleinen Problemchen ... Wenn ein User eines auswählt funktioniert alles soweit Ich speichere die Daten in einer gesonderten Tabelle ab welche regelmäßig u.a. mit Cronjob bereinigt wird ... Soweit funktioniert auch ... Allerdings wenn ein User eine falsche Eingabe macht egal welche dann erscheint Formular mit Änderungsanzeige --> Alles ok soweit ... Natürlich mölchte ich nicht das der User dann seine Daten alle neu eingeben muss und würde gerne die Optionsbox "vordefinieren" sodass diese Auswahl, welche er schon im Vorfeld geklickt hat auch wieder angeziegt bekommt. Also mit normalen input type text feldern funktioniert ja auch die Rückgabe.

Mit meinen Optionsboxen habe ich inzwischen soweit das zumindest dann das richtige da zwar wieder darinne steht, allerdings dann als 4. zusätzlicher Punkt was dann aber mit dem Verarbeiten zum einen nicht klappt und zum anderen wenn ich 2 mal hintereinander auf Abschicken klicke ist dieser Inhalt dort auch wieder raus wird also demnach mit 1 überschrieben, was mir sagt ohne nachzudenken das dieser Wert der zwar anfangs eingeblendet wird aber nicht die richtige ID hat.

Mein aktuellster Versuch:

PHP-Code:

      <?php 
        $landvorauswahl
=mysql_query("SELECT * FROM $dbname.laender WHERE id = '$v[land]'");
        
$la_vorauswahl=mysql_result($landvorauswahl,0,"form");
       
      
?>
Mit diesem Teil lese ich die Tabelle laender aus um den den Name auszulesen welcher auf die jeweiligen ID passt.

Und jetzt der denke ich relevante Teil:

PHP-Code:
<option value="<?php echo $la_vorauswahl ?>" selected="selected"></A></option>
Es ist nicht viel aber mir gehen da die Ideen aus... Ich lese im Prinzip ledeglich eine ID aus der einen Tabelle aus ... Diese ID die ich auslese steht in der Tabelle laender udn wird somit den jeweiligen Land zugeteilt udn ich möchte nur das dieses Land angezeigt wird und nicht das Feld immer wieder leer ist. Müsste denke ich eigtl. möglich sein auch ohne JS sonst hätte ich das bis dahin auch nicht i-wie hinbekommen was aber funktioniiert


Schaeferly
Schaeferly ist offline   Mit Zitat antworten
Alt 08.05.2012, 20:52   #5
threadi
Pharao
 
Registriert seit: 03.06.2006
Ort: Leipzig
Beiträge: 4.117
threadi sorgt für eine eindrucksvolle Atmosphärethreadi sorgt für eine eindrucksvolle Atmosphäre
Standard AW: Optionsfeld-Problem mit Übergabe

Praktisch brauchst Du eine Bedingung die das HTML-Attribut selected einfüge. Also so etwas:

PHP-Code:
<option value="<?php echo $la_vorauswahl ?>"<?php if( $la_vorauswahl == $selected ) { ?> selected="selected"<?php ?>><?php echo $la[kfz]." - ".$la[land]; ?></option>
$selected müsstest Du mit dem POST-Request füllen, falls die Seite ohne Weiterleitung nach dem Abschicken des Formulars angezeigt wird. Also:

PHP-Code:
$selected $_POST["la"]; 
Wenn Du allerdings unbedingt die Daten aus der Datenbank nutzen willst, dann musst Du in $selected einfach nur den Wert aus der DB speichern.

Wichtig: Nimm endlich das überzählige </A> aus deinem Code raus.

PS: Die Variablennamen kannst Du natürlich anpassen
threadi ist offline   Mit Zitat antworten
Alt 08.05.2012, 22:27   #6
Schaeferly
Meister
 
Registriert seit: 17.07.2011
Beiträge: 305
Themenstarter
Schaeferly befindet sich auf einem aufstrebenden Ast
Standard AW: Optionsfeld-Problem mit Übergabe

Hi,

also das Beispiel funktioniert gut, aber ich habe schon bei der Anrede nun gleich wieder "genau" dasselbe Problem obwohl ich nur Variablennamen anpassen musste aber da funkioniert es nicht genau der selbe Aufbau ...


PHP-Code:
      <? $anredeformen mysql_query("SELECT * FROM $dbname.anrede",$db);
         while (
$anr mysql_fetch_array($anredeformen)){
         echo 
"<option value='".$anr["id"]."'>".$anr[form]."</option>";
         };
 
        
$anredevorauswahl=mysql_query("SELECT * FROM $dbname.anrede WHERE id = '$v[anrede]'",$db); 
        
$anr_vorauswahl=mysql_result($anredevorauswahl,0,"form"); 
        
        
$anrvorauswahl=$v['anrede'];
      
?>
        <option value="<?php echo $anr_vorauswahl ?>"<?php if( $anr_vorauswahl ==  $anrvorauswahl) { ?> selected="selected"<?php ?>><?php echo $anr[form] ; ?></option>
Ich bin scheinbar echt zu blöd oder so glaube ich langsam ... Ich hab so das probiert ging nicht und hab keine Ahnung bestimmt 5 mal den Code neu auch hierrein kopiert komplett von laender übernommen und dann die variablen abgeändert ... Ich versteh einfach nicht warum genau selbe einmal geht und einmal nicht ... ?!

O.o hab Cache gelöscht was eigtl nicht nötig war denke ich und hab nochmal getestet ... Also selbst bei Länder geht es nicht... Es wählt mir auch hierbei immer das erste aus in dem Fall Deutschland ... hatte das beim testen scheinbar zufällig immer gewählt gleich und ist mir nicht aufgefallen ... Also weiß ich jetzt doch nicht mehr weiter ...

Geändert von Schaeferly (08.05.2012 um 22:31 Uhr) Grund: Doppelposting
Schaeferly ist offline   Mit Zitat antworten
Werbung



Alt 08.05.2012, 22:43   #7
threadi
Pharao
 
Registriert seit: 03.06.2006
Ort: Leipzig
Beiträge: 4.117
threadi sorgt für eine eindrucksvolle Atmosphärethreadi sorgt für eine eindrucksvolle Atmosphäre
Standard AW: Optionsfeld-Problem mit Übergabe

Wenn Du nicht sicher bist, was Du dort vergleichst, lass dir die Inhalte der Variablen mit var_dump() ausgeben.

PHP-Code:
var_dump($anrvorauswahl); 
Das nennt man dann Debuggen. So kommt man auch mal selbst näher zum Ziel.
threadi ist offline   Mit Zitat antworten
Alt 08.05.2012, 22:56   #8
Schaeferly
Meister
 
Registriert seit: 17.07.2011
Beiträge: 305
Themenstarter
Schaeferly befindet sich auf einem aufstrebenden Ast
Standard AW: Optionsfeld-Problem mit Übergabe

Also Vardump ist ein guter Tipp habe ich gemacht:

Zitat:
string(1) "2" string(10) "Österreich"
Für die Variablen einmal der Auswahl der Länder. Also scheinen zumindest auf Klick auch wirklcih das abzugeben, was ich klicke und im Anschluss steht dann trotzdem wieder "1" "Deutschland" im Feld, obwohl mir Österreich übergeben wird und in der DB auch eine "2" für Österreich eingetragen wurde, also er übernimmt beim Auslesen i-wie nicht die Zahl sondern immer das erste ... Aber was da ist weiß ich nicht...

Ich meine vardump() ist zwar ganz praktisch gibt mir genau dasselbe zurück wie wenn ich dabei in der DB schaue ob gewünschten Änderungen waren ... Es liegt auf jeden Fall beim Eintragen aus der DB das Problem...
Schaeferly ist offline   Mit Zitat antworten
Alt 08.05.2012, 23:07   #9
threadi
Pharao
 
Registriert seit: 03.06.2006
Ort: Leipzig
Beiträge: 4.117
threadi sorgt für eine eindrucksvolle Atmosphärethreadi sorgt für eine eindrucksvolle Atmosphäre
Standard AW: Optionsfeld-Problem mit Übergabe

Es kommt auch drauf an, an welchen Stellen Du es ausgibst. Du darfst nicht einfach konfus lostesten sondern konstruktiv nachschauen in welcher Reihenfolge was abgearbeitet wird.

Für mich macht es die Speicherung der Daten in dieser Datenbanktabelle schwierig hier mitzuhalten. Das ist ein eher unüblicher Weg und Du wirst schon irgendeinen Gedanken dazu haben. Aber mehr als diese Tipps kann man hier nicht wirklich geben.
threadi ist offline   Mit Zitat antworten
Alt 08.05.2012, 23:16   #10
Schaeferly
Meister
 
Registriert seit: 17.07.2011
Beiträge: 305
Themenstarter
Schaeferly befindet sich auf einem aufstrebenden Ast
Standard AW: Optionsfeld-Problem mit Übergabe

Also ich teste momentan "ausschließlich" diese Boxen alles andere wird ersteinmal gekonnt ignoriert klappt aufgrund von DB-Speicherung. Ja das ich mir was dabei denke stimmt. Zum einen sogar aus Spamschutzgründen, sodass wenn die Anmeldung nicht abgeschlossen wird verfällt diese und bedrückt mich nicht zum anderen um einfach derer Daten zu überprüfen ohne das mir diese verloren gehen . So vom Prinzip ganz gut auch denke ich

Aber ich hatte schon die gesamte Zeit seit ich das Programmieren lerne meine Probleme mit den Optionsfeldern darum habe ich mir das immer aufgeschoben. Ich meine was wir hier gerade machen hängt ja eigtl mit den VALUE Wert zusammen der entscheided doch eigtl was direkt ausgewählt ist oder liege ich da falsch ?

Habe auch zu anfang schon den VALUE-Wert so geändert aber selbst da kam kein Eintrag rein.

Zitat:
Für mich macht es die Speicherung der Daten in dieser Datenbanktabelle schwierig hier mitzuhalten. Das ist ein eher unüblicher Weg und Du wirst schon irgendeinen Gedanken dazu haben. Aber mehr als diese Tipps kann man hier nicht wirklich geben.
Über diese Tipps bin ich auch dankbar
Ich verstehe nur einfach nicht was ausgerechnet diese Optionsfelder mir das Leben noch mal so richtig schwer machen. Ganz nebenbei durfte ich heute feststellen das meine Checkbox auch nicht wirklich reagiert aber auf einer anderen Seite mit ähnlichen Gedanke läuft dies ... (geht nur um Bestätigung von AGB habe ich jetzt ersteinmal ganz aus und vor genommen für diese Tests) ... Ich denke das das Problem an der MySQL Ausgabe liegen könnte oder ? Also das ich alle Inhalte per Schleife ausgebe?
Schaeferly ist offline   Mit Zitat antworten
Werbung



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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit CSS-Seitendesign Onkel-Tom 1.2.2 - HTML, CSS & JavaScript 4 26.02.2007 11:54
Problem mit der JCE-Komponente. Bitte um Hilfe. linus1964 1.3.4 - Content Management Systeme (CMS) 3 04.12.2006 18:23
Problem mit Popuprand skudle 1.2.2 - HTML, CSS & JavaScript 1 07.03.2005 13:42
Problem bei CSS-Layout mit Firefox Chris-Chros 1.2.2 - HTML, CSS & JavaScript 5 10.02.2005 09:33
Excel-Programmierung: Habe ein Problem - und zwar ein großes Christoph Maus 2.6 - Smalltalk 2 07.03.2003 14:55


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


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Advertisement System v2.6 by Branden
Copyright © meine-erste-homepage.com