zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Eine <div> kopieren

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 19.03.2008, 13:49
Benutzerbild von wannaberoot
learning by doing
neuer user
Thread-Ersteller
 
Registriert seit: 19.03.2008
Ort: Bayern
Beiträge: 8
wannaberoot befindet sich auf einem aufstrebenden Ast
Frage Eine <div> kopieren

Hallo an Alle,

bin neu hier und habe gleich ein kleines Problemchen. Meine Aufgabe besteht darin ein einfaches Formular welches in einer <div> ist mit einem Hinzufüge-Button zu kopieren und unter die erster <div> einzufügen.

PHP-Code:
<div id="addfield">
<--- 
schickes Feld mit Text-Input -->
</
div>
<
tr>
<
td algin="left">
<
button type="button">Feld hinzufügen</button>
<
button type="submit">Speichern</button>
</
td>
</
tr
Ich habe es schon mit javascript versucht (div. Code-Schnippsel -> gefunden mit google), aber damit noch keinen Erfolg gehabt, zudem ich mich mit javascript noch weniger auskenne.

Ich qäule google und Boardsuchen schon seit einigen Tagen, aber entweder gab es diese Frage bisher noch nicht so in dieser Form oder (was ich langsam mehr glaube) stehe ich atm so auf der Leitung und stelle die falschen Fragen und denke in die falsche Richtung.

Ich hoffe ihr könnt mir mit meinem Problem helfen. Vielen Dank schon mal an alle die es Versuchen.

P.S. Ich hoffe die Formatierung ist ok
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 19.03.2008, 14:13
Benutzerbild von Timo
table-layout: none;
XHTMLforum-Kenner
 
Registriert seit: 11.11.2006
Beiträge: 5.345
Timo ist ein LichtblickTimo ist ein LichtblickTimo ist ein LichtblickTimo ist ein LichtblickTimo ist ein Lichtblick
Standard

Also mit JavaScript geht deim Vorhaben besser, frag mal im JavaScript Forum hier nach.

Das ist auch besser wegen den Werten die in den Inputs vermutlich drinn sind!
__________________
Um weitere Erklärungen eingeblendet zu bekommen, drücken Sie bitte die Tastenkombination Alt + F4

Geändert von Timo (19.03.2008 um 14:42 Uhr)
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 19.03.2008, 14:43
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Diese Funktion müsste Dir weiterhelfen können.

Du musst den Knoten erstmal mit cloneNode(true) klonen und anschließend ins Dokument einfügen. true gibt hier an, dass alle Unterknoten mit geklont werden sollen.

Also müsste es ungefähr so funktionieren (ungetestet):
Code:
var feld = document.getElementById('addfield');
var neuesFeld = feld.cloneNode(true);
neuesFeld.setAttribute('id', 'neue ID vergeben');
// evtl. noch Name für Textfeld ändern/ergänzen, etc.
document.getElementById('addfield').parentNode.insertBefore(neuesFeld, feld);
Mit Zitat antworten
  #4 (permalink)  
Alt 19.03.2008, 16:16
Benutzerbild von wannaberoot
learning by doing
neuer user
Thread-Ersteller
 
Registriert seit: 19.03.2008
Ort: Bayern
Beiträge: 8
wannaberoot befindet sich auf einem aufstrebenden Ast
Standard

Hi Timo & mantiz,

danke für eure Antworten. Leider kann ich mich momentan nicht so in die Tiefen von javascript ein arbeiten (wäre zwar schön, nur atm nicht Möglich).

Ein Bekannter von mir meinte das es auch eine Möglichkeit via PHP gibt. Ich weis nur noch das es etwas mit dem neu Laden der Seite zu tun hat. Also man drückt auf den Button, Seite wird neu geladen etc. Leider ist dieser Bekannter im Urlaub, ich kann ihn nicht Fragen und ich bin totaler PHP-Einsteiger.

Ein weiteres Problem wäre dass das Umfeld indem dieses Web-GUI dann eingesetzt wird javascript im Browser deaktiviert habt.
Mit Zitat antworten
  #5 (permalink)  
Alt 19.03.2008, 16:33
Benutzerbild von Timo
table-layout: none;
XHTMLforum-Kenner
 
Registriert seit: 11.11.2006
Beiträge: 5.345
Timo ist ein LichtblickTimo ist ein LichtblickTimo ist ein LichtblickTimo ist ein LichtblickTimo ist ein Lichtblick
Standard

Also ich sag mal so, normal ist das auch kein Problem. Aber ich glaube das es mit PHP ein mehraufwand ist.

Ich setz mich nacher kurz hin um dir ein Beispiel zu machen.

Gruß
Timo
__________________
Um weitere Erklärungen eingeblendet zu bekommen, drücken Sie bitte die Tastenkombination Alt + F4
Mit Zitat antworten
  #6 (permalink)  
Alt 19.03.2008, 16:54
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.734
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Folgendes ist möglich:
PHP-Code:
<form action="" method="post">
<ul>
<?php
    
if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
        if( isset(
$_POST['add']) ) {
            foreach( 
$_POST['foobar'] as $val ) {
                echo 
'<li><input type="text" name="foobar[]" value="'.htmlspecialchars($val).'"></li>';
            }
        } else {
            
var_dump($_POST['foobar']);
        }
    }
?>
    <li><input type="text" name="foobar[]"></li>
</ul>
<input type="submit" name="add" value="Feld hinzufügen"><input type="submit">
</form>
__________________
Markus Wulftange
Mit Zitat antworten
  #7 (permalink)  
Alt 19.03.2008, 17:02
Benutzerbild von Timo
table-layout: none;
XHTMLforum-Kenner
 
Registriert seit: 11.11.2006
Beiträge: 5.345
Timo ist ein LichtblickTimo ist ein LichtblickTimo ist ein LichtblickTimo ist ein LichtblickTimo ist ein Lichtblick
Standard

Man, jetzt war ich zu langsam.

So hatt ich mir das auch gedacht!
__________________
Um weitere Erklärungen eingeblendet zu bekommen, drücken Sie bitte die Tastenkombination Alt + F4
Mit Zitat antworten
  #8 (permalink)  
Alt 19.03.2008, 17:44
Benutzerbild von wannaberoot
learning by doing
neuer user
Thread-Ersteller
 
Registriert seit: 19.03.2008
Ort: Bayern
Beiträge: 8
wannaberoot befindet sich auf einem aufstrebenden Ast
Standard

Danke für eure Hilfe Gumbo und Timo.

Ich versuche die nächsten Tage den Code anzupassen und gebe dann Rückmeldung über Erfolg oder Verzweiflung

Update - 20.03.08

Hi,

also ich habe den Code von Gumbo angepasst für meine <div>. Das "kopieren" funktioniert soweit auch.
Nun hab ich noch folgende Frage: Wie kann ich einen "zähler" integrieren, der mir für jedes hinzugefügte Feld (<div>/Element) eine Nummer dazu gibt? Zum Beispielt:
PHP-Code:
<input type="text" name="text1"// Button Hinzufügen wird gedrückt
<input type="text" name="text2">
[...] 

Geändert von wannaberoot (20.03.2008 um 13:21 Uhr) Grund: Update
Mit Zitat antworten
  #9 (permalink)  
Alt 20.03.2008, 18:33
Glühend, brennend Rot
XHTMLforum-Mitglied
 
Registriert seit: 12.08.2006
Ort: Riehen
Beiträge: 152
Wasili befindet sich auf einem aufstrebenden Ast
Standard

Du könntest diese Informationen beispielsweise in einem Cookie speichern, oder in einer session. Alternativ kannst du auch beim Absenden die Felder zählen, die du in Post drin hast und daraus errechnen, wieviel zusätzliche Zeilen du bereits hast. Eine andere Möglichkeit, die ohne Zählen auskommt, ist folgende:

Code:
<input type="text" name="text[]"> // Button Hinzufügen wird gedrückt
<input type="text" name="text[]">
Beim Absenden empfängt PHP aus den Daten ein Array - und zugreifen kannst du in etwa so:

PHP-Code:
echo $_POST['text'][0]; // Erstes zugefügtes Feld
echo $_POST['text'][1]; // Zweites zugefügtes Feld 
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 20.03.2008, 18:46
Benutzerbild von Timo
table-layout: none;
XHTMLforum-Kenner
 
Registriert seit: 11.11.2006
Beiträge: 5.345
Timo ist ein LichtblickTimo ist ein LichtblickTimo ist ein LichtblickTimo ist ein LichtblickTimo ist ein Lichtblick
Standard

Zitat:
Zitat von Wasili Beitrag anzeigen
Code:
<input type="text" name="text[]"> // Button Hinzufügen wird gedrückt
<input type="text" name="text[]">
Beim Absenden empfängt PHP aus den Daten ein Array - und zugreifen kannst du in etwa so:

PHP-Code:
echo $_POST['text'][0]; // Erstes zugefügtes Feld
echo $_POST['text'][1]; // Zweites zugefügtes Feld 
Das ist die beste Version.

Aber wenn du das anders haben willst mach das so:
PHP-Code:
<?php
    
if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
        if( isset(
$_POST['add']) ) {
           
$i 1
           foreach( 
$_POST['foobar'] as $val ) {
                echo 
'<li><input type="text" name="text'.$i.'" value="'.htmlspecialchars($val).'"></li>';
                
$i++;
            }
        } else {
            
var_dump($_POST['foobar']);
        }
    }
?>
__________________
Um weitere Erklärungen eingeblendet zu bekommen, drücken Sie bitte die Tastenkombination Alt + F4
Mit Zitat antworten
Sponsored Links
Antwort

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.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
<div> - Elemente und Scrollbalken / <div> - Elemente durch Inhalt verschiebbar scrub CSS 9 15.12.2008 22:20
positioniertes <div> soll sich an anderes <div> anpassen r0bN CSS 8 25.07.2007 14:37
Mehrere <div> mit float:left innerhalb eines übergeordneten <div> zentrieren Heinzi CSS 2 02.06.2007 21:39
<div> in <div> positionieren guenterfrosch CSS 5 06.09.2006 11:28
<Div> ausrichten in <Div> mit BG.jpg Unsk1ll3d CSS 6 04.01.2006 02:25


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:42 Uhr.