Funzione che calcola la somma

gasparroa

Utente Attivo
4 Dic 2008
57
0
0
Buona sera
ho un problema con questa funzione se faccio la somma di dei primi 2 campi funziona me se voglio fare un altra somma non funziona ne la prima ne la seconda come mai?
PHP:
<script>
function startCalc(){
interval = setInterval("calc()",1);
}
function calc(){
one = document.autoSumForm.firstBox.value;
two = document.autoSumForm.secondBox.value; 
document.autoSumForm.thirdBox.value = (one)-((one) * (two))/100;
}
function stopCalc(){
clearInterval(interval);
}
</script>


<form name="autoSumForm">
<input type=text name="firstBox" value="" onFocus="startCalc();" onBlur="stopCalc();"> 
<input type=text name="secondBox" value="33" onFocus="startCalc();" onBlur="stopCalc();">


//seconda somma
<input type=text name="thirdBox"><br>
<input type=text name="firstBox" value="" onFocus="startCalc();" onBlur="stopCalc();"> 
<input type=text name="secondBox" value="33" onFocus="startCalc();" onBlur="stopCalc();">
<input type=text name="thirdBox">
</form>
 
Prova a vedere se così funziona:
HTML:
<script type="text/javascript"> 
function startCalc(value1, value2, sum)
{ 
	interval = setInterval("calc('" + value1 + "', '"+ value2 +"', '"+ sum +"')", 1);
}

function calc(value1, value2, sum)
{ 
	var one = document.getElementById(value1).value;
	var two = document.getElementById(value2).value;
	document.getElementById(sum).value = (one) - ((one) * (two)) / 100;
}

function stopCalc()
{ 
	clearInterval(interval); 
}
</script> 


<form name="autoSumForm"> 
	<input type="text" id="firstBox" name="firstBox" value="" onfocus="startCalc('firstBox', 'secondBox', 'thirdBox');" onblur="stopCalc();" />  
	<input type="text" id="secondBox" name="secondBox" value="33" onfocus="startCalc('firstBox', 'secondBox', 'thirdBox');" onblur="stopCalc();" /> 
	<input type="text" name="thirdBox" />
	
	<br /> 
	
	<input type="text" id="fourthBox" name="fourthBox" value="" onfocus="startCalc('fourthBox', 'fifthBox', 'sixthBox');" onblur="stopCalc();" />  
	<input type="text" id="fifthBox" name="fifthBox" value="33" onfocus="startCalc('fourthBox', 'fifthBox', 'sixthBox');" onblur="stopCalc();" /> 
	<input type="text" id="sixthBox" name="sixthBox" /> 
</form>
 
nel caso fossero un numero n di

PHP:
<input type="text" id="firstBox" name="firstBox" value="" onfocus="startCalc('firstBox', 'secondBox', 'thirdBox');" onblur="stopCalc();" />  
	<input type="text" id="secondBox" name="secondBox" value="33" onfocus="startCalc('firstBox', 'secondBox', 'thirdBox');" onblur="stopCalc();" /> 
	<input type="text" name="thirdBox" />

<input type="text" id="firstBox" name="firstBox" value="" onfocus="startCalc('firstBox', 'secondBox', 'thirdBox');" onblur="stopCalc();" />  
	<input type="text" id="secondBox" name="secondBox" value="33" onfocus="startCalc('firstBox', 'secondBox', 'thirdBox');" onblur="stopCalc();" /> 
	<input type="text" name="thirdBox" />
<input type="text" id="firstBox" name="firstBox" value="" onfocus="startCalc('firstBox', 'secondBox', 'thirdBox');" onblur="stopCalc();" />  
	<input type="text" id="secondBox" name="secondBox" value="33" onfocus="startCalc('firstBox', 'secondBox', 'thirdBox');" onblur="stopCalc();" /> 
	<input type="text" name="thirdBox" />
<input type="text" id="firstBox" name="firstBox" value="" onfocus="startCalc('firstBox', 'secondBox', 'thirdBox');" onblur="stopCalc();" />  
	<input type="text" id="secondBox" name="secondBox" value="33" onfocus="startCalc('firstBox', 'secondBox', 'thirdBox');" onblur="stopCalc();" /> 
	<input type="text" name="thirdBox" />
<input type="text" id="firstBox" name="firstBox" value="" onfocus="startCalc('firstBox', 'secondBox', 'thirdBox');" onblur="stopCalc();" />  
	<input type="text" id="secondBox" name="secondBox" value="33" onfocus="startCalc('firstBox', 'secondBox', 'thirdBox');" onblur="stopCalc();" /> 
	<input type="text" name="thirdBox" />

per esempio 5 o 10 cosa si puo fare ?
 
Vorrei adattarlo a questo come devo fare

HTML:
<script type="text/javascript"> 
function startCalc(value1, value2, sum)
{ 
	interval = setInterval("calc('" + value1 + "', '"+ value2 +"', '"+ sum +"')", 1);
}

function calc(value1, value2, sum)
{ 
	var one = document.getElementById(value1).value;
	var two = document.getElementById(value2).value;
	document.getElementById(sum).value = (one) - ((one) * (two)) / 100;
}

function stopCalc()
{ 
	clearInterval(interval); 
}
</script>

PHP:
<form name="autoSumForm"> 
<?php 
$num=5;
for($k=1;$k<=$num;$k++)
{
?>
	<input type="text" id="prezzo1" name="prezzo" value="" onfocus="startCalc('prezzo1', 'prezzo2', 'prezzo3');" onblur="stopCalc();" />  
	<input type="text" id="prezzo2" name="sconto" value="33" onfocus="startCalc('prezzo1', 'prezzo2', 'prezzo3');" onblur="stopCalc();" /> 
	<input type="text" name="prezzo3" id="prezzofin" />
	<br />
<?php }?>
</form>
 
In questa maniera dovrebbe funzionare:
PHP:
<?php  
$num=5; 
for($k=1;$k<=$num;$k++) 
{ 
?> 
    <input type="text" id="prezzo1_<?php echo $k; ?>" name="prezzo" value="" onfocus="startCalc('prezzo1_<?php echo $k; ?>', 'prezzo2_<?php echo $k; ?>', 'prezzo3_<?php echo $k; ?>');" onblur="stopCalc();" />   
    <input type="text" id="prezzo2_<?php echo $k; ?>" name="sconto" value="33" onfocus="startCalc('prezzo1_<?php echo $k; ?>', 'prezzo2_<?php echo $k; ?>', 'prezzo3_<?php echo $k; ?>');" onblur="stopCalc();" />  
    <input type="text" name="prezzo3_<?php echo $k; ?>" id="prezzofin" /> 
    <br /> 
<?php }?> 
</form>
 
Risolto

Grazie mille per la tua disponibilità 0:)

ho risolto in maniera simile

PHP:
<form name="autoSumForm"> 
<?php 
$num=20;
for($k=1;$k<=$num;$k++)
{
	echo"
<input type=\"text\" id=\"prezzo$k\" name=\"prezzo[]\" onfocus=\"startCalc('prezzo$k', 'sconto$k', 'prezzofin$k')\" onblur=\"stopCalc();\" />  
	<input  type=\"text\" id=\"sconto$k\" name=\"sconto[]\" onfocus=\"startCalc('prezzo$k', 'sconto$k', 'prezzofin$k');\" onblur=\"stopCalc()\" value=\"10\" readonly=\"readonly\" /> 
	<input type=\"text\" id=\"prezzofin$k\" name=\"prezzofin[]\" readonly=\"readonly\" />
	<br />";
}?>
</form>
 
Ho lo stesso problema con questa funzione che apre un menu. apre solo il primo menu se ne metto piu di uno ne apre solo il primo sul primo link.

l'esempio si puo scaricare http://abeautifulsite.net/blog/2008/09/jquery-context-menu-plugin/


PHP:
<script src="jquery-1.4.2.min.js" type="text/javascript"></script>
		<script src="jquery.contextMenu.js" type="text/javascript"></script>
		<link href="jquery.contextMenu.css" rel="stylesheet" type="text/css" />
		
		<script type="text/javascript">
			$(document).ready( function() {
				// Show menu when #myDiv is clicked
				$("#myDiv").contextMenu({
					menu: 'myMenu'
				});
				// Show menu when a list item is clicked
				$("#myList UL LI").contextMenu({
					menu: 'myMenu'
				});
			});
		</script>

PHP:
<div id="myDiv">
	+
</div>	
		<ul id="myMenu" class="contextMenu">
  <li class="edit"><a href="#" onClick="window.location.href='http://google.it'">HTML.IT</a></li>
			<li class="cut separator"><a href="http://www.google.it">Home</a></li>
			<li class="copy"><a href="#copy">Copy</a></li>
			<li class="paste"><a href="#paste">Paste</a></li>
			<li class="delete"><a href="#delete">Delete</a></li>
			<li class="quit separator"><a href="#quit">Quit</a></li>
		</ul>
 

Allegati

Menu con errore simile al primo

Ciao ho lo stesso problema con questo menu che usa jquery
vorrei avere un menu che si apre cliccando su un bottone con il tasto destro e fin qui ci siamo lo script funziona correttamente me se metto tutto in un ciclo non funziona più si apre solo il primo

esempio al link

Questa è la funzione
PHP:
<script type="text/javascript">
	$(document).ready(function(){
            $('#context').vscontext({menuBlock: 'vs-context-menu'});
	});
	</script>


<?php
for($i=0;$i<=10;$i++)
{
?>
<div id="context">
This is the testing block.
</div>
<?php }?>
PHP:
<div id="context">This is the testing block.</div> 
<div class="vs-context-menu">
<ul>
<li class=”cut seprator”><a href=”javascript:cut();” id=”menu_1″>Cut</a></li>
<li class=”copy”><a href=”javascript:copy();” id=”menu_2″>Copy</a></li>
<li class=”paste seprator”><a href=”javascript:paste();” id=”menu_3″>Paste</a></li>
<li class=”edit”><a href=”javascript:edit();” id=”menu_4″>Edit</a></li>
<li class=”delete”><a href=”javascript:del();” id=”menu_5″>Delete</a></li>
</ul>
</div>
 

Discussioni simili