• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Duplicate Fields für eigenes CMS

Samiii

New member
Hallo,
ich bin neu hier und meine Frage lautet:
Ich habe ein CMS gecodet (noch nicht ganz fertig) und jetzt wollte ich um einen Beitrag zu erstellen, eine FORM haben deren inputfelder zu clonen gehen.
Wenn ich das ganze abschicke sollen die Felder Values in die datenbank gespeichert werden.
Auf der bearbeitungs .php sollten dann die gespeicherten Values in deren Felder wieder angezeigt werden.
Bis jetzt habe ich nur die add function hinbekommen :D , bei der function wenn z.B. 4 Felder gespeichert wurden, dass das feld 4 mal geclont wird und deren Value eingesetzt wird bin ich gescheitert :/

danke jetzt schon :)
hier die addfunction:


HTML:
HTML:
<form>
<p class="clone"> 

<label for="beschreibung">Select1:</label>
		<select name="Select1[]">
  			<option value="1">AAA</option>
  			<option value="2">BBB</option> 
 			<option value="3">CCC</option>
		</select><br />
<label for="beschreibung">Select2:</label>
		<select name="Select2[]">
  			<option value="1">AAA</option>
  			<option value="2">BBB</option> 
 			<option value="3">CCC</option> 
 			<option value="4">DDD</option> 
 			<option value="5">EEE</option>
 			<option SELECTED value="6">FFF</option>
  			<option value="7">GGG</option>
  			<option value="8">HHH</option>
		</select><br />
<label for="beschreibung">Select3:</label>
		<select name="Select3[]">
  			<option value="3">AAA</option>
  			<option value="2">BBB</option> 
 			<option value="1">CCC</option>
		</select><br />

<label for="beschreibung">Textarea:</label><textarea type="text" rows="5" cols="48" name="text[]" /></textarea><br /><br />
</p>
<p><a href="#" class="add" rel=".clone">Clonen</a></p>
<input type="submit" value="Senden" />
</form>
PHP:
PHP:
if($_POST['text'])
{

$array=$_POST['Select1'];
$counter = '1';
foreach($array as $Select1)
{ 
$Select1[$counter] = $Select1;
$counter++;
}

$array=$_POST['Select2'];
$counter = '1';
foreach($array as $Select2)
{ 
$Select2[$counter] = $Select2;
$counter++;
}

$array=$_POST['Select3'];
$counter = '1';
foreach($array as $Select3)
{ 
$Select3[$counter] = $Select3;
$counter++;
}

$array=$_POST['text'];
$counter = '1';
foreach($array as $text)
{ 

mysql_query("INSERT INTO `Tabelle`(`Select1`, `Select2`, `Select3`, `text`) VALUES ('$Select1[$counter]', '$Select2[$counter]', '$Select3[$counter]', '$text[$counter]')");

$counter++;
}

}
JS:
Code:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="js/reCopy.js"></script>
<script type="text/javascript">
$(function(){
var removeLink = ' <a class="remove" href="#" onclick="$(this).parent().slideUp(function(){ $(this).remove() }); return false">Löschen</a>';

$('a.add').relCopy({ append: removeLink});
});
</script>
reCopy.js
Code:
(function($) {

	$.fn.relCopy = function(options) {
		var settings = jQuery.extend({
			excludeSelector: ".exclude",
			emptySelector: ".empty",
			copyClass: "copy",
			append: '',
			clearInputs: true,
			limit: 4 
		}, options);
		
		settings.limit = parseInt(settings.limit);
		
		this.each(function () {
			
			$(this).click(function (){
				var rel = $(this).attr('rel');			
				var counter = $(rel).length;
				
				if (settings.limit != 0 && counter >= settings.limit){
					return false;
				};
				
				var master = $(rel+":first");
				var parent = $(master).parent();						
				var clone = $(master).clone(true).addClass(settings.copyClass+counter).append(settings.append);
				
				if (settings.excludeSelector){
					$(clone).find(settings.excludeSelector).remove();
				};
				
				if (settings.emptySelector){
					$(clone).find(settings.emptySelector).empty();
				};								
				
				if ( $(clone).attr('id') ){
					var newid = $(clone).attr('id') + (counter +1);
					$(clone).attr('id', newid);
				};
				
				$(clone).find('[id]').each(function(){
					var newid = $(this).attr('id') + (counter +1);
					$(this).attr('id', newid);
				});
				
				if (settings.clearInputs){
					$(clone).find(':input').each(function(){
						var type = $(this).attr('type');
						switch(type)
						{
							case "button":
								break;
							case "reset":
								break;
							case "submit":
								break;
							case "checkbox":
								$(this).attr('checked', '');
								break;
							default:
							  $(this).val("");
						}						
					});					
				};
				
				$(parent).find(rel+':last').after(clone);
				
				return false;
				
			});
			
		});
		
		return this;
	};
	
})(jQuery);
 
Zuletzt bearbeitet:
Zurück
Oben