Goedemiddag PHPhulp-ers!

Voor een klein factuursysteempje is het nodig om één of meerdere producten+omschrijving etc. in te kunnen vullen om het vervolgens te converteren naar een .PDF bestand.

Omdat je van te voren nooit weet hoeveel producten een factuur zal hebben, roep ik met een klein AJAXscriptje een volgende Product-invul-reeks op.

Nu is het probleem, dat op het moment dat ik bij de eerste productveldjes iets intyp, en vervolgens op "plus" klik(Om een tweede veld aan te roepen dus), dat de data uit productveld 1 weer geleegd wordt.

Alles heeft een uniek ID etc. dus dat zal het wezen. Dus als iemand van jullie een oplossing heeft, of een foutje ziet. Dan hoor ik dit graag:)


Aanroep inputvelden:

	<div id="mijn_div">
	</div>
	<a href="javascript:ajax();">plus</a><br />


Verwerking aanroep(productform.js):

var counter=0;

function ajax()
{
	counter++;
	var ajax_request;
	ajax_request=mijn_request()

	if (ajax_request==null)
	{
		alert ("Browser ondersteund geen Ajax");
		return;
	}
	var url="makeform.php"
	url+="?counter="+counter
	url=url+"&random="+Math.random()

	ajax_request.onreadystatechange=function()
	{
		if (ajax_request.readyState == 4 && (ajax_request.status==200) || ajax_request.readyState=="complete") {
			document.getElementById('mijn_div').innerHTML += ajax_request.responseText;
		}
	}
	ajax_request.open("GET",url,true);
	ajax_request.send(null);
}

function mijn_request()
{
	var request=null;
	try { request=new XMLHttpRequest(); }
	catch (e) {
		try { request=new ActiveXObject("Msxml2.XMLHTTP"); }
		catch (e) { request=new ActiveXObject("Microsoft.XMLHTTP"); }
	}
	return request;
}


Inputvelden(makeform.php)
<?php
echo '
<div id="'.$_GET['counter'].'">
<div style="width:450px; float:left; margin-bottom:15px;">
Titel<br /><input type="text" name="titel'.$_GET['counter'].'" value="" class="inputform" style="width:400px;"><br />
Productomschrijving<br />
<input type="text" name="pro'.$_GET['counter'].'-1" value="" class="inputform" style="width:400px;"><br />
<input type="text" name="pro'.$_GET['counter'].'-2" value="" class="inputform" style="width:400px;"><br />
<input type="text" name="pro'.$_GET['counter'].'-3" value="" class="inputform" style="width:400px;">
</div>
<div style="width:50px; float:right; margin-bottom:15px;">
BTW<br /><input type="text" name="btw'.$_GET['counter'].'" value="19%" class="inputform" style="width:33px;">
</div>
<div style="width:50px; float:right; margin-bottom:15px;">
Korting<br /><input type="text" name="korting'.$_GET['counter'].'" value="" class="inputform" style="width:38px;">
</div>
<div style="width:80px; float:right; margin-bottom:15px;">
Stuksprijs<br /> &euro; <input type="text" name="Stuksprijs'.$_GET['counter'].'" value="" class="inputform" style="width:40px;">
</div>
<div style="width:50px; float:right; margin-bottom:15px;">
Aantal<br /><input type="text" name="aantal'.$_GET['counter'].'" value="" class="inputform" style="width:35px;">
</div>
<input type="hidden" name="counter" value="'.$_GET['counter'].'">
<div style="clear:both;"></div>
</div>';
?>


p.s Reacties over irrelevante code wordt niet op prijs gesteld.
Waar het waarschijnlijk aan licht is dat de pagina een soort van ververst word, je moet zogen dat op het moment dat iemand naast het input veld klikt de gegevens al worden opgeslagen in een cookie of session. Ik weet dat dit kan maar heb geen iedee hoe je dit moet maken.
De pagina of div wordt niet gerefreshed, er wordt alleen wat bij gezet...
ik dacht in eerste instantie ook dat het daar misliep, toen heb ik effe een anigifje geplaatst ipv inputvelden, en daaruit blijkt dat er niks gerefreshed werd

Daarbij submit ik ook nog 's niks, dus zou ik het niet in een session kunnen zetten
Dit komt inderdaad door dat de inhoud van je BRON wordt gebruikt bij het aanpassen van je InnerHTML.

Je bron bevat nog niet de value van het inputveld, dus gebeurt dat opnieuw.

Je kan met AJAX prima de waarde versturen naar een pagina, die alles in een sessie op slaat. Ik zal nog eens ff denken of ik niet een manier weet waarop je de gegevens ook zonder sessie mee kan nemen.
Zoeiets moet je maken, maar kijk even achter de broncode. Dit is het script:
function addControler()
			{
				var separator = document.createElement('div');
					separator.className = 'separator';
				var controlerSelector = document.createElement('select');
					controlerSelector.name = 'controler[]';
					for(i= 0; i < controlers.length; i++)
					{
						var option = document.createElement('option');
							option.value = controlers[i][0];
						var optionLabel = document.createTextNode(controlers[i][1]);
							option.appendChild(optionLabel);
						controlerSelector.appendChild(option);
					}
					separator.appendChild(controlerSelector);
				document.getElementById('selectorLine').appendChild(separator);
				return;
			}

Reageren