tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Gumbo
ERLEDIGT
JA
ANTWORTEN
12
ZUGRIFFE
295
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    caballero82 caballero82 ist offline Rookie
    Registriert seit
    Sep 2007
    Beiträge
    8
    Hallo zusammen,

    ich habe ein ein Formular, das sich per javascript um Text- und Selectfelder erweitern lässt. Nun habe ich allerdings das Problem, dass lediglich die Daten der NICHT geklonten Reihen an den Server übermittelt werden. Die Klone werden einfach nicht mitgeschickt? Hoffe mir kann jmnd. helfen.

    Anmerkung: habe mit dem Plugin "Live http headers" überprüft, welche Daten übermittelt werden.

    Mein HTML-Code sieht folgendermaßen aus:

    HTML-Code:
    <form action="index.php?id=23&profileTab=1&save=1" name="editform" method="post">
    ...
    <div class="experiencebox">
    	<div class="profilehead">header</div>
        <div class="h2profilehead">subheader</div>
    		<div id="clonedTag">
    			<table>
    				<tr>
    					<td>Name</td>
    					<td>position</td>
    					<td>www</td>
    				</tr>
    				<tr>
    					<td>
    						<input name="EP[tx_common_company][name][]" value="" size="30" type="text">
    					</td>
    					<td>
    						<input name="EP[tx_common_company][position][]" value="" size="30" type="text">
    					</td>
    					<td>
    						<input name="EP[tx_common_company][www][]" value="" size="30" type="text">
    					</td>
    				</tr>
    			</table>
    			<table>
    				<tr>
    					<td>start monat</td>
    					<td>start jahr</td>
    					<td>ende monat</td>
    					<td>ende jahr</td>
    				</tr>
    				<tr>
    					<td>
                                              <select name="EP[tx_common_company][start_year][]">
                                                 <option value="1">1912</option>
                                             </select>
                                            </td>
    					<td>
                                              <select name="EP[tx_common_company][end_year][]">
                                                 <option value="1">1931</option>
                                             </select>
                                            </td>
    				</tr>
    			</table>
    		</div>
                    <input value="erweitern" onclick="clone_this(this,'clonedTag')" type="button">
    		<a href="javascript: document.editform.submit()">
                        <img src="fileadmin/website/images/icons/ic_save.gif"> Save changes
                    </a>
    </div>
    ...
    </form>
    Der zugehörige javascript-code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    <script type="text/javascript">
    function clone_this(button,objid){
        var clone_me = document.getElementById(objid).cloneNode(true);
     
        // Im Parent-DIV vor dem Kindknoten "button" einhängen
        button.parentNode.insertBefore(clone_me, button);
    }
     
    </script>
    Geändert von caballero82 (06.12.07 um 20:30 Uhr)
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Wo ist denn das Formularelement?
     
    Markus Wulftange

  3. #3
    caballero82 caballero82 ist offline Rookie
    Registriert seit
    Sep 2007
    Beiträge
    8
    Zitat Zitat von Gumbo Beitrag anzeigen
    Wo ist denn das Formularelement?

    habs editiert - danke für den Hinweis. Stells dir so vor, dass die "..." weitere div-container darstellen und die Inhalte in diesen Containern ebenfalls mitgespeichert werden.

    Hast du sonst ne Idee, woran ich (außer an mir selber ) scheitere?

    Ergänzend möchte ich noch noch erläutern, wie sich der input-name EP[tx_common_company][www][] zusammensetzt:
    - EP ist eine globale Variable
    - tx_common_company gibt die Tabelle an, in der gespeichert werden soll
    - www sagt um welches Tabellenfeld es sich handelt
     

  4. #4
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Also ich kann das Problem nicht nachvollziehen. Bei mir funktioniert es wie erwartet/erdacht. Lass dir doch mal alle per POST-Methode übergebenen Werte ausgeben:
    PHP-Code:
    var_dump($_POST); 
     
    Markus Wulftange

  5. #5
    caballero82 caballero82 ist offline Rookie
    Registriert seit
    Sep 2007
    Beiträge
    8
    Zitat Zitat von Gumbo Beitrag anzeigen
    Also ich kann das Problem nicht nachvollziehen. Bei mir funktioniert es wie erwartet/erdacht. Lass dir doch mal alle per POST-Methode übergebenen Werte ausgeben:
    PHP-Code:
    var_dump($_POST); 
    habe deinen Rat befolgt, hier das Ergebnis:
    PHP-Code:
    array(1) { ["EP"]=> array(2) { ["fe_users"]=> array(13) { ["tx_common_firstname"]=> string(5"Vorname" ["tx_common_name_affix"]=> string(4"test" ["tx_common_lastname"]=> string(5"Nachname" ["tx_common_birthday"]=> string(1"8" ["tx_common_birthmonth"]=> string(1"2" ["tx_common_birthyear"]=> string(4"1982" ["tx_common_status"]=> string(1"1" ["company"]=> string(4"test" ["tx_common_company_category"]=> string(1"3" ["tx_common_jobtitle"]=> string(4"test" ["tx_common_organizations"]=> string(433"halli hallo my organzitation" ["tx_common_language"]=> string(2"-1" ["tx_common_other_languages"]=> string(238"German, English" } ["tx_common_company"]=> array(7) { ["name"]=> array(1) { [0]=> string(5"test1" } ["position"]=> array(1) { [0]=> string(5"test1" } ["www"]=> array(1) { [0]=> string(5"test1" } ["start_month"]=> array(1) { [0]=> string(1"1" } ["start_year"]=> array(1) { [0]=> string(4"1982" } ["end_month"]=> array(1) { [0]=> string(1"3" } ["end_year"]=> array(1) { [0]=> string(4"1980" } } } } 
    verstehe nicht, wieso die Werte des ersten "clonedTag" mitgeschickt werden, die des zweiten allerdings nicht.

    PS: der relevante Teil beginnt relativ weit hinten, ab "tx_common_company"
    Geändert von caballero82 (06.12.07 um 20:59 Uhr)
     

  6. #6
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Installiere dir mal Firebug, damit kannst du dir den DOM in Echtzeit anschauen. Überprüfe mal, ob das geklonte Element überhaupt an der richtigen Stelle eingefügt wird.
     
    Markus Wulftange

  7. #7
    caballero82 caballero82 ist offline Rookie
    Registriert seit
    Sep 2007
    Beiträge
    8
    habe firebug bereits installiert. Die Ausgabe ist sauber - das <div>-Tag "clonedTag" wird geklont und dahinter gesetzt.

    Wenn ich im Editor von Firbug über die Klone gehe, markiert er die entsprechenden Bereiche auf der grafischen Oberfläche blau. Ich denke, dass sieht i.O. aus.

    Das einzig was mir auffällt, ist dieser output:
    <input type="text" _base_href="http://www.xy.com/" size="30" value="" name="EP[tx_common_company][name][]"/>

    Woher kommt denn überhaupt "_base_href"? Wird automatisch generiert, aber weshalb - könnte das Probleme verursachen?
     

  8. #8
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Hast du vielleicht irgendwelche Erweiterungen installiert, die den Quellcode dermaßen verändern? Und ist das Ganze vielleicht online zu betrachten?
     
    Markus Wulftange

  9. #9
    caballero82 caballero82 ist offline Rookie
    Registriert seit
    Sep 2007
    Beiträge
    8
    Zitat Zitat von Gumbo Beitrag anzeigen
    Hast du vielleicht irgendwelche Erweiterungen installiert, die den Quellcode dermaßen verändern? Und ist das Ganze vielleicht online zu betrachten?
    Das ganze läuft auf Typo3.

    edit: rest gelöscht
    Geändert von caballero82 (06.12.07 um 21:55 Uhr)
     

  10. #10
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Also ich kann das Problem immer noch nicht nachvollziehen. Bei mir wird alles wie erwartet. Vermutlich liegt es dann an deiner Firefox-Version. Hast du es schon mit anderen Browser oder Firefox-Versionen probiert?
     
    Markus Wulftange

  11. #11
    caballero82 caballero82 ist offline Rookie
    Registriert seit
    Sep 2007
    Beiträge
    8
    Bist du schon auf der Plattform?

    Jetzt kommen wir dem Problem näher. Habs jetzt mal im IE probiert und dort werden die POST-Daten sauber übermittelt, im Firefox hingegen nicht.

    Meine Firefox-Version:
    Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1) Gecko/20061010 Firefox/2.0
     

  12. #12
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Ich vermute, es liegt an irgendwelchen installierten Erweiterungen. Deaktiviere sie mal oder installiere Firefox neu.
    caballero82 bedankt sich. 
    Markus Wulftange

  13. #13
    caballero82 caballero82 ist offline Rookie
    Registriert seit
    Sep 2007
    Beiträge
    8
    Ich gehe davon aus, dass das Problem am javascript liegt und ich dieses auf beide Browser optimieren müsste. Haste schon Erfahrung mit diesem Probl.?

    Zitat Zitat von Gumbo Beitrag anzeigen
    Ich vermute, es liegt an irgendwelchen installierten Erweiterungen. Deaktiviere sie mal oder installiere Firefox neu.
    Das könnte auch durchaus sein, da inzwischen 2-3 Plugins in meinem Browser installiert hab. Ich werde diesen Weg mal gehen, heute Nacht aber vorerst mit IE arbeiten.

    Ich werde das mit dem Browser morgen testen und mich melden... und hoffentlich diesen Thread als "geklärt" abhaken

    Vielen Dank, dass Du Dir die Zeit genommen hast, dich mit meinem Probl. zu beschäftigen.

    Bis Morgen
     

Ähnliche Themen

  1. PHP-Formular - Inalte werden nicht übermittelt
    Von Steffiberlin im Forum PHP
    Antworten: 13
    Letzter Beitrag: 10.01.11, 18:12
  2. Formularfelder werden falsch verschickt (AJAX: & + etc)
    Von Zenti im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 06.11.10, 19:19
  3. Antworten: 1
    Letzter Beitrag: 12.12.07, 17:08
  4. wie werden diese Werte übermittelt?
    Von splat im Forum PHP
    Antworten: 3
    Letzter Beitrag: 05.03.07, 14:07
  5. <select> leerstellen werden nicht übermittelt...!?
    Von Sebigf im Forum HTML & XHTML
    Antworten: 7
    Letzter Beitrag: 12.06.05, 21:58