Ergebnis 1 bis 6 von 6
  1. #1
    jack-x ist offline Eroberer
    registriert
    11-03-2007
    Beiträge
    67

    Browserweiche um Werte in einem Formular zu setzten?

    Ich weiß nicht, zum wievielten Male ich an diesem Script rumbasteln muß. Mal funktioniert es mal nicht ...


    In verschiedenen aufeinanderfolgenden Formularen (formular1, formular2 ...) werden Felder definiert.
    Die ursprünglichen Werte sind in versteckten Eingabefeldern hinterlegt.

    Aufbau sieht vielleicht ungefähr so aus:
    formular1
    eingabelfeld1 - checkbox
    vorauswahl
    in einer auflistung anzeigen
    eingabefeld2 - text
    formatierung möglich
    in einer auflistung anzeigen
    formular2
    eingabelfeld1 - radiobuttons
    Werte für die radiobuttons
    in einer auflistung anzeigen
    eingabefeld2 - textarea
    formatierung möglich
    in einer auflistung anzeigen

    Ob es sich in dem Eingabefeld um eine Checkbox, Raodiobuttons u.sw. handelt, wird in einem <select> Feld ausgewählt. Daher wird eine Tabelle mit der Auswahl wie Formatierung, Vorauswahl per javascript eingefügt. Will ich die hinterlegten Werte aus den verstecketen Feldern wieder einfügen, spielt wieder mal nur der IE mit.
    Im Firefox bekomme ich nur die Meldung das Eingabefeld wäre "undefined"

    HTML-Code:
    			document.getElementById(FieldType+'_definition['+FormularToAdd+']').innerHTML = Definition;
    			//---------- Werte setzten ----------
    			if (SetValues == '1' && Definition)  {
    				//if (FieldType == "formular" && FormularToAdd == 1)  {
    				//	alert('Field: '+Field+'\n'+'FieldType: '+FieldType+'\n'+'FormularToAdd: '+FormularToAdd);
    				//	alert(Definition);
    				//	}
    				//---------- Checkboxen setzten ----------
    				ValuesToSet = new Array('listing', 'required', 'pre_select', 'format', 'single', 'only_loged', 'refresh', 'pic_pos', 'date_with_day', 'date_with_month', 'date_and_time', 'only_loged', 'multiselect');
    				for (i = 0; i < ValuesToSet.length; i++)  {					
    					if (document.getElementById(FieldType+'_values['+FormularToAdd+']['+ValuesToSet[i]+']') && document.getElementById(FieldType+'_'+FormularToAdd+'['+ValuesToSet[i]+']'))  {
    						if (document.getElementById(FieldType+'_'+FormularToAdd+'['+ValuesToSet[i]+']').value == 1 || document.getElementById(FieldType+'_'+FormularToAdd+'['+ValuesToSet[i]+']').value  == 'on')  {
    							//FormName = document.forms['form_'+Field];
    							//FormElement = FieldType+'_values['+FormularToAdd+']['+ValuesToSet[i]+']';
    							//alert(FormName.elements.FormElement)
    							if (document.forms['form_'+Field].elements[FieldType+'_values['+FormularToAdd+']['+ValuesToSet[i]+']'])  {
    								alert('Checkbox '+ValuesToSet[i]+' setzem');
    								document.forms['form_'+Field].elements[FieldType+'_values['+FormularToAdd+']['+ValuesToSet[i]+']'].checked = true;
    								}
    							//se
    							//	alert('Checkbox '+ValuesToSet[i]+' nicht vorhanden');
    							}
    						}
    					}  // Checkboxen setzten
    				//---------- Zahlen setzten ----------
    				ValuesToSet = new Array('auto', 'min_length', 'max_length', 'textarea_height', 'min_h', 'max_h', 'min_w', 'max_w');
    				for (i = 0; i < ValuesToSet.length; i++)  {
    					if (document.getElementById(FieldType+'_values['+FormularToAdd+']['+ValuesToSet[i]+']') && document.getElementById(FieldType+'_'+FormularToAdd+'['+ValuesToSet[i]+']'))  {
    						if (document.getElementById(FieldType+'_'+FormularToAdd+'['+ValuesToSet[i]+']').value > 0)  {
    							if (document.forms['form_'+Field].elements[FieldType+'_values['+FormularToAdd+']['+ValuesToSet[i]+']'])
    								document.forms['form_'+Field].elements[FieldType+'_values['+FormularToAdd+']['+ValuesToSet[i]+']'].value = document.getElementById(FieldType+'_'+FormularToAdd+'['+ValuesToSet[i]+']').value;
    							}
    						}
    					}  // Zahlen setzten
    				//---------- String setzten ----------
    				ValuesToSet = new Array('pic_start', 'file_dir', 'dropdown');
    				for (i = 0; i < ValuesToSet.length; i++)  {
    					if (document.getElementById(FieldType+'_values['+FormularToAdd+']['+ValuesToSet[i]+']') && document.getElementById(FieldType+'_'+FormularToAdd+'['+ValuesToSet[i]+']'))  {
    						if (document.getElementById(FieldType+'_'+FormularToAdd+'['+ValuesToSet[i]+']').value != '')  {
    							if (document.forms['form_'+Field].elements[FieldType+'_values['+FormularToAdd+']['+ValuesToSet[i]+']'])
    								document.forms['form_'+Field].elements[FieldType+'_values['+FormularToAdd+']['+ValuesToSet[i]+']'].value = document.getElementById(FieldType+'_'+FormularToAdd+'['+ValuesToSet[i]+']').value;
    							}
    						}
    					}  // String setzten
    				//---------- Start-Datum setzten ----------
    				if (document.getElementById(FieldType+'_values['+FormularToAdd+'][start_date]') && document.getElementById(FieldType+'_'+FormularToAdd+'[start_date]'))  {
    					var list_length	 = document.getElementById(FieldType+'_values['+FormularToAdd+'][start_date]').length;
    					for (i=0; i < (list_length); i++)  {
    						if (document.getElementById(FieldType+'_'+FormularToAdd+'[start_date]').value != '' && document.getElementById(FieldType+'_'+FormularToAdd+'[start_date]').value == document.getElementById(FieldType+'_values['+FormularToAdd+'][start_date]').options[i].value)  {
    							if (document.forms['form_'+Field].elements[FieldType+'_values['+FormularToAdd+'][start_date]'])
    								document.forms['form_'+Field].elements[FieldType+'_values['+FormularToAdd+'][start_date]'].options[i].selected = true;
    							}
    						}
    					}
    				}  // Werte setzen
    Wegen der Sprachabhängigkeit und dem Umfang des Scriptes:
    http://mecs.webstudio.info/manager/i...on.js.php?l=de

    Also warum will beim Firefox das

    document.forms['form_'+Field].elements[FieldType+'_values['+FormularToAdd+']['+ValuesToSet[i]+']']

    nicht mehr???

  2. #2
    Cord Worthmann ist offline Routinier
    registriert
    27-07-2005
    Ort
    27356 Rotenburg
    Beiträge
    418

    AW: Browserweiche um Werte in einem Formular zu setzten?

    Du versuchst, innerhalb eines literalen Ausdrucks Indexer zu evaluieren, was der FF wohl ignoriert.
    Wenn Du die Namen schon auf solch abenteuerlichem Wege zusammensetzt, mache einfach ein eval um den Inhalt des elements Indexers, dann sollte es klappen.

  3. #3
    jack-x ist offline Eroberer
    registriert
    11-03-2007
    Beiträge
    67

    AW: Browserweiche um Werte in einem Formular zu setzten?

    Habe es auch mal damit versucht, den Namen des Elemets voher zusammensetzen zu lassen mit eval bzw im elements[].
    Da bekomme ich die Fehlermeldung formular_values not defined. Der Wert "formular" wird mit der Variablen FieldType übergeben.

    Edit: Die hier zu verabeitenden Formulare sind in einem iframe. Dieser wird bei Bedarf eingefügt mit einer verstecken Tabellenzeile (display:table-row/inline).
    Wenn ich diese Zeile wieder ausblende, dann erst kommen die Fehlermeldungen in der Firefox-Konsole??
    Geändert von jack-x (09-05-2007 um 20:12 Uhr)

  4. #4
    jack-x ist offline Eroberer
    registriert
    11-03-2007
    Beiträge
    67

    AW: Browserweiche um Werte in einem Formular zu setzten?

    Sorry, muß den Thread mal nach oben schieben. Brauche hier immer noch Hilfe.
    Und die Namen sollten auf dieser abenteuerlichen Weise zusammengestzt bleiben. Die Werte werden von einem php-Script verarbeitet und irgendwie sollte ich die Zusammenhänge, welcher Wert zu welchen Eingabefeld in welchem Formular gehört, beibehalten.
    Hatte auch ausprobiert, den Namen des Eingabefeldes vorher zusammensetzen zu lassen und dann erst mit document.forms anzusprechen. Selbes Problem.

  5. #5
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Browserweiche um Werte in einem Formular zu setzten?

    gibt es eine Testseite?

  6. #6
    jack-x ist offline Eroberer
    registriert
    11-03-2007
    Beiträge
    67

    AW: Browserweiche um Werte in einem Formular zu setzten?

    Die Werte werden jetzt wieder brav gesetzt, wenn ich Sie per
    HTML-Code:
    document.getElementById(FieldType+'_values['+Field+']['+FormularToAdd+']['+ValuesToSet[i]+']').checked = true;
    einfügen lasse.
    Aber dafür habe ich jetzt den Effekt, das die Werte in der generierten Tabelle nicht übermittelt werden werden beim absenden des Formulrs. Liegt das daran, das ich das document.forms nicht mehr verwende?
    Und wie kann ich das wieder hinbekommen?

    Link zum Javascript steht im ersten Beitrag. Eine Testseite gibt es dazu nicht. Kann aber gerne bei Interesse einen Test-User einrichten, für das System an dem ich Arbeite.

    Wenn ich die $_Post anzeigen lasse, wird als Beiepiel nur nur folgendes übermittelt:
    HTML-Code:
    Array
    (
        [formular_values] => Array
            (
                [contact] => Array
                    (
                        [0] => Array
                            (
                                [sequence] => 010
                                [formular] => checkbox
                                [formular_txt] => Array
                                    (
                                        [en] => Contact
                                        [de] => Kontakt
                                        [ar] => العنوان
                                        [fr] => Contact
                                        [it] => 
                                        [es] => 
                                        [pl] => 
                                        [ru] => 
                                        [cz] => 
                                        [hr] => 
                                        [cn] => 
                                        [jp] => 
                                    )
    
                                [access] => 3
                                [mysql_db] => usr_web43_1
                                [mysql_table] => mecs_contacts
                                [mysql_table_new] => 
                                [mysql_id] => publish
                            )
    
                        [1] => Array
                            (
                                [sequence] => 020
                                [formular] => dropdown_table
                                [formular_txt] => Array
                                    (
                                        [en] => Groups
                                        [de] => Gruppe
                                        [ar] => المجموعات
                                        [fr] => Groupes
                                        [it] => 
                                        [es] => 
                                        [pl] => 
                                        [ru] => 
                                        [cz] => 
                                        [hr] => 
                                        [cn] => 
                                        [jp] => 
                                    )
    
                                [access] => 2
                                [mysql_db] => usr_web43_1
                                [mysql_table] => mecs_contacts
                                [mysql_table_new] => 
                                [mysql_id] => contact_group
                            )
    
                        [2] => Array
                            (
                                [sequence] => 030
                                [formular] => text
                                [formular_txt] => Array
                                    (
                                        [en] => Company
                                        [de] => Firma
                                        [ar] => الشركة
                                        [fr] => Entreprise
                                        [it] => 
                                        [es] => 
                                        [pl] => 
                                        [ru] => 
                                        [cz] => 
                                        [hr] => 
                                        [cn] => 
                                        [jp] => 
                                    )
    
                                [access] => 2
                                [mysql_db] => usr_web43_1
                                [mysql_table] => mecs_contacts
                                [mysql_table_new] => 
                                [mysql_id] => company
                            )
    
                        [3] => Array
                            (
                                [sequence] => 040
                                [formular] => text
                                [formular_txt] => Array
                                    (
                                        [en] => Person in Charge
                                        [de] => Ansprechpartner
                                        [ar] => الشخص المسئول
                                        [fr] => personne responsable
                                        [it] => 
                                        [es] => 
                                        [pl] => 
                                        [ru] => 
                                        [cz] => 
                                        [hr] => 
                                        [cn] => 
                                        [jp] => 
                                    )
    
                                [access] => 2
                                [mysql_db] => usr_web43_1
                                [mysql_table] => mecs_contacts
                                [mysql_table_new] => 
                                [mysql_id] => name
                            )
    
                        [4] => Array
                            (
                                [sequence] => 050
                                [formular] => text
                                [formular_txt] => Array
                                    (
                                        [en] => Address
                                        [de] => Anschrift
                                        [ar] => العنوان البريدي
                                        [fr] => Adresse
                                        [it] => 
                                        [es] => 
                                        [pl] => 
                                        [ru] => 
                                        [cz] => 
                                        [hr] => 
                                        [cn] => 
                                        [jp] => 
                                    )
    
                                [access] => 2
                                [mysql_db] => usr_web43_1
                                [mysql_table] => mecs_contacts
                                [mysql_table_new] => 
                                [mysql_id] => street
                            )
    
                        [5] => Array
                            (
                                [sequence] => 060
                                [formular] => text
                                [formular_txt] => Array
                                    (
                                        [en] => Zip code
                                        [de] => PLZ
                                        [ar] => الرقم البريدي
                                        [fr] => Code postale
                                        [it] => 
                                        [es] => 
                                        [pl] => 
                                        [ru] => 
                                        [cz] => 
                                        [hr] => 
                                        [cn] => 
                                        [jp] => 
                                    )
    
                                [access] => 2
                                [mysql_db] => usr_web43_1
                                [mysql_table] => mecs_contacts
                                [mysql_table_new] => 
                                [mysql_id] => postal_zip
                            )
    
                        [6] => Array
                            (
                                [sequence] => 070
                                [formular] => text
                                [formular_txt] => Array
                                    (
                                        [en] => City
                                        [de] => Ort
                                        [ar] => المدينة
                                        [fr] => Ville
                                        [it] => 
                                        [es] => 
                                        [pl] => 
                                        [ru] => 
                                        [cz] => 
                                        [hr] => 
                                        [cn] => 
                                        [jp] => 
                                    )
    
                                [access] => 2
                                [mysql_db] => usr_web43_1
                                [mysql_table] => mecs_contacts
                                [mysql_table_new] => 
                                [mysql_id] => city
                            )
    
                        [7] => Array
                            (
                                [sequence] => 080
                                [formular] => text
                                [formular_txt] => Array
                                    (
                                        [en] => Country
                                        [de] => Land
                                        [ar] => البلد
                                        [fr] => Pays
                                        [it] => 
                                        [es] => 
                                        [pl] => 
                                        [ru] => 
                                        [cz] => 
                                        [hr] => 
                                        [cn] => 
                                        [jp] => 
                                    )
    
                                [access] => 2
                                [mysql_db] => usr_web43_1
                                [mysql_table] => mecs_contacts
                                [mysql_table_new] => 
                                [mysql_id] => country
                            )
    
                        [8] => Array
                            (
                                [sequence] => 090
                                [formular] => www
                                [formular_txt] => Array
                                    (
                                        [en] => Homepage
                                        [de] => Homepage
                                        [ar] => صفحة الانترنت
                                        [fr] => Home page
                                        [it] => 
                                        [es] => 
                                        [pl] => 
                                        [ru] => 
                                        [cz] => 
                                        [hr] => 
                                        [cn] => 
                                        [jp] => 
                                    )
    
                                [access] => 2
                                [mysql_db] => usr_web43_1
                                [mysql_table] => mecs_contacts
                                [mysql_table_new] => 
                                [mysql_id] => www
                            )
    
                        [9] => Array
                            (
                                [sequence] => 100
                                [formular] => email
                                [formular_txt] => Array
                                    (
                                        [en] => E-Mail
                                        [de] => E-Mail
                                        [ar] => البريد الالكتروني
                                        [fr] => E-Mail
                                        [it] => 
                                        [es] => 
                                        [pl] => 
                                        [ru] => 
                                        [cz] => 
                                        [hr] => 
                                        [cn] => 
                                        [jp] => 
                                    )
    
                                [access] => 2
                                [mysql_db] => usr_web43_1
                                [mysql_table] => mecs_contacts
                                [mysql_table_new] => 
                                [mysql_id] => email
                            )
    
                    )
    
            )
    
        [del_form] => Array
            (
                [contact] => 
            )
    
    )
    Unterhalb von [mysql_id] => name fehlt alles möglich wie [listing], [pre_select] usw. je nachdem, was für ein Feld unter [formular] ausgewählt wurde.
    Geändert von jack-x (18-05-2007 um 17:30 Uhr)

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 26-04-2007, 12:40
  2. Formular Werte über Popup "reinladen"
    Von jakez im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 23-09-2006, 14:47
  3. Werte aus Formular bei Aufruf in anderes Formular (Datei) übergeben
    Von jacky im Forum Serverseitige Programmierung
    Antworten: 4
    Letzter Beitrag: 17-10-2002, 14:08
  4. Werte aus Formular in neues Fenster übergeben
    Von jacky im Forum JavaScript
    Antworten: 9
    Letzter Beitrag: 14-10-2002, 12:35
  5. Werte aus Formular prüfen
    Von spacefrog78 im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 28-08-2002, 12:19

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •