ik heb al een script om veld aan te maken, maar nu zoek ik ook een script voor een undo. het zou super zijn ie zou bestaan :P

voorbeeld
XXX = veld
- = undo
+ = add veld

XXXXX
- +

(na + indrukken)

XXXXX
XXXXX
- +

(na - indrukken terug naar:)

XXXXX
- +

script voor + heb ik al, ik zoek alleen nog script voor het min

klopt, maar probleem is - verdubbelt zich na elke klik op het +

ik probeer :

XXXXXX
+-

(klik "+")

XXXXXX
XXXXXX
+-

te krijgen en niet :


XXXXXX-
+

(klik "+")

XXXXXX -
XXXXXX -
+

het bespaart ruimte en een hoop loops in m'n script ^^
hij is bijna klaar ^^

dit is resutaat zover:

<html>
<head>
<style type="text/css">

*{
font-family: Verdana;
font-size: 11px;
}
.value {
width: 25%;
}
.valuee {
width: 73.8%;
}
#controls input{
float: right;
width: 5%;
}

</style>
<script>

function addSelector()
{
var currentSelectors = document.getElementById('selectorLine').childNodes.length;
if(currentSelectors > 0)
{
addControler();
}
var wrapper = document.createElement('div');
wrapper.id = 'wrapper_'+currentSelectors;


var valueSelector = document.createElement('input');
valueSelector.name='bron[]';
valueSelector.className = 'value';
wrapper.appendChild(valueSelector);

document.getElementById('selectorLine').appendChild(wrapper);

var textje = document.createTextNode(' - ');
wrapper.appendChild(textje);

var valueSelector = document.createElement('input');
valueSelector.name='link[]';
valueSelector.className = 'valuee';
wrapper.appendChild(valueSelector);

document.getElementById('selectorLine').appendChild(wrapper);

var textje = document.createTextNode(' ');

wrapper.appendChild(textje);
return;
}

function addControler()
{
var separator = document.createElement('div');
separator.className = 'separator';

document.getElementById('selectorLine').appendChild(separator);
return;
}

function removeSelector()
{
if(document.getElementById('selectorLine').childNodes.length < 2)
{
return false;
}
document.getElementById('selectorLine').removeChild(document.getElementById('selectorLine').lastChild);
document.getElementById('selectorLine').removeChild(document.getElementById('selectorLine').lastChild);

return;
}

window.onload = addSelector;

</script>
</head>
<body>
<div id="wrapper">
<form method="post" action="testtest.php">
<fieldset>
<legend>Bron(nen)
</legend>
<div id="selectorLine"></div>
<div id="controls">
<input type="button" value="+" onclick="addSelector()"/>
<input type="button" value="-" onclick="removeSelector(null)"/>
</div>
</fieldset>
<input type="submit"/>
</form>
</div>
</body>
</html>

maar output is niet zoals het moet zijn:

Array ( [bron] => Array ( [0] => blablabron1 [1] => blablabron2 ) [link] => Array ( [0] => blablalink1 [1] => blablalink2 ) )

ik heb het hele midddag al geprobeerd om deze resultaat te krijgen:

Array ([bron1] => blablabron1 [link1] => blablalink1 [bron2] => blablabron2 [link2] => blablalink2 )



Met de - die ook iedere keer wordt toegevoegd, kun je precies aangeven welk gedeelte je wilt verwijderen. Wanneer je slechts 1 min-knop hebt, zal dat niet meer gaan.
klopt, maar als je een volgorde "1,2,3" "2" weg klikt met -, krijg je "1,3"
maar bij het script hierboven kan je niets anders dan het laatste cijfer verwijderen waardoor het nette volgorde blijft en je een hoop loops bespaart in het volgende script ^^
een doorbraak :P

<html>
<head>
<style type="text/css">

*{
font-family: Verdana;
font-size: 11px;
}
.value {
width: 25%;
}
.valuee {
width: 73.8%;
}
#controls input{
float: right;
width: 5%;
}

</style>
<script>

function addSelector()
{
var currentSelectors = document.getElementById('selectorLine').childNodes.length;
if(currentSelectors > 0)
{
addControler();
}
var wrapper = document.createElement('div');
wrapper.id = 'wrapper_'+currentSelectors;


var valueSelector = document.createElement('input');
valueSelector.name='bron';
valueSelector.className = 'value';
wrapper.appendChild(valueSelector);

document.getElementById('selectorLine').appendChild(wrapper);

var textje = document.createTextNode(' - ');
wrapper.appendChild(textje);

var valueSelector = document.createElement('input');
valueSelector.name='link';
valueSelector.className = 'valuee';
wrapper.appendChild(valueSelector);

document.getElementById('selectorLine').appendChild(wrapper);

var textje = document.createTextNode(' ');

wrapper.appendChild(textje);
return;
}

function addControler()
{
var separator = document.createElement('div');
separator.className = 'separator';

document.getElementById('selectorLine').appendChild(separator);
return;
}

function removeSelector()
{
if(document.getElementById('selectorLine').childNodes.length < 2)
{
return false;
}
document.getElementById('selectorLine').removeChild(document.getElementById('selectorLine').lastChild);
document.getElementById('selectorLine').removeChild(document.getElementById('selectorLine').lastChild);

return;
}

window.onload = addSelector;

</script>
</head>
<body>
<div id="wrapper">
<form method="post" action="testtest.php">
<fieldset>
<legend>Bron(nen)
</legend>
<div id="selectorLine"></div><div id="selectorLine"></div>
<div id="controls">
<input type="button" value="+" onclick="addSelector()"/>
<input type="button" value="-" onclick="removeSelector(null)"/>
</div>
</fieldset>
<input type="submit"/>
</form>
</div>
</body>
</html>

uitkomst = Array ( [bron] => blablabron1 [link] => blablalink1 )

is het mogelijk een een teller neer te zetten?
zodat je "
Array ( [bron1] => blablabron1 [link1] => blablalink1 [bron2] => blablabron2 [link2] => blablalink2)
" krijgt?
niemand?

het zou me enorm helpen als iemand weet of het mogelijk is of zelfs het antwoord weet ^^

Reageren