Javascript函数在php代码中不起作用

Javascript函数在php代码中不起作用,javascript,php,Javascript,Php,我试图在php代码中使用for循环调用javascript函数。但它不起作用。我猜在我调用函数的那一行中有什么地方出错了。请建议如何编辑代码,以便javascript函数能够正常工作。这是我尝试过的代码 <?php ?> <script> function calculate(aa, mad, hs, gra, mas, nsm, phd, exp, intv){ document.getElementById(aa).value=document.getElemen

我试图在php代码中使用for循环调用javascript函数。但它不起作用。我猜在我调用函数的那一行中有什么地方出错了。请建议如何编辑代码,以便javascript函数能够正常工作。这是我尝试过的代码

<?php
?>
<script>

function calculate(aa, mad, hs, gra, mas, nsm, phd, exp, intv){

document.getElementById(aa).value=document.getElementById(mad).value/10 -(-     document.getElementById(hs).value/10)-(-document.getElementById(gra).value/5)-(-document.getElementById(mas).value/5)-(-document.getElementById(nsm).value)-(-document.getElementById(phd).value)-(-document.getElementById(exp).value)-(-document.getElementById(intv).value);
}

</script>

<?php
echo "
<form action='gl1p.php' method='post'>";


$noc=20;




echo "

<table align='center' border='1' style='border-collapse:collapse'    align='center'><tr>
<th>Sl. No</th><th>Name</th><th>Caste</th><th>Madhyamik</th><th>HS</th>   <th>Graduation</th><th>Masters</th><th>NET/SLET/MPhil</th><th>PhD</th> <th>Experience</th><th>Interview</th><th>Calculate</th><th>Score</th>

</tr>";

for ($i=1;$i<=$noc;++$i){



echo "<tr><td align='center'></td><td align='center' ><input type='text'   size='45' id='name{$i}' name='name[$i]'></td><td><select id='caste{$i}' name='caste[$i]'><option></option><option>UR</option><option>SC</option><option>ST</option><option>OBC</option></select></td><td align='center'><input type='text' size='1' id='mad{$i}' name='mad[$i]'></td><td align='center'><input    type='text' size='1' id='hs{$i}' name='hs[$i]'></td><td align='center'><input type='text' size='1' id='gra{$i}' name='gra[$i]'></td><td align='center'><input type='text' size='1' id='mas{$i}' name='mas[$i]'></td><td align='center'><input type='text' size='1' id='nsm{$i}' name='nsm[$i]'></td><td align='center'><input type='text' size='1' id='phd{$i}' name='phd[$i]'></td><td align='center'><input type='text' size='1' id='exp{$i}' name='exp[$i]'></td><td align='center'><input type='text' size='1' id='intv{$i}' name='intv[$i]'></td><td><input type=Button value=Calculate onclick=calculate('tot'.$i, 'mad'.$i, 'hs'.$i, 'gra'.$i, 'mas'.$i, 'nsm'.$i, 'phd'.$i, 'exp'.$i, 'intv'.$i)>";//
echo "</td><td align='center'><input type='text' size='1' id='tot{$i}'  name='tot[$i]'></td></tr>";
}



echo "
</table>
<br/><br/><br/>

<div align='center'><input type='submit' value='Prepare merit list' ></div>
</form>";
?>

函数计算(aa、mad、hs、gra、mas、nsm、phd、exp、intv){
document.getElementById(aa).value=document.getElementById(mad).value/10-(-document.getElementById(hs.value/10)-(-document.getElementById(gra.value/5)-(-document.getElementById(mas.value/5)-(-document.getElementById(nsm.value)-(-document.getElementById(phd.value)-)-(-document.getElementById(exp.value)-(-document.getElementById(exp.value)-(-document.getElementById(intv.value)-);
}

你可以这样称呼它

<?php
  echo '
    <script>
      yourFunction(2,1,33);
    </script>
  ';
?>


您遇到的错误是什么?我看到你在这样做:计算('tot','I','mad','I','hs','I','gra','I','mas','I','nsm','I','phd','I','exp','I','intv'.$I)。可以吗?是否确实要使用这些参数调用函数?例如,计算(“'tot'.1”“,“'mad'.1”“…”)?您的函数没有被调用,因为它没有正确引用。我强烈建议你努力清理代码。。。间隔、引用、命名等。这将使调试更容易。显示的代码乱七八糟。将您的javascript与php@Mindastic实际上,我想更改每个循环的ID,并将这些ID用作函数参数。例如,我想将ID设置为mad1,hs1,。。。。对于i=1,将函数用作计算(..,'mad1','hs1',…)。然后mad2,hs2,。。。。对于i=2,将函数用作calculate(…,'mad2','hs2',…)。在这种情况下,将其串联是错误的。您不需要在那里添加单引号,因为您将整个字符串用双引号括起来,这将以$i作为变量。如果您想双重确保变量被考虑进去,那么可以用大括号{$i}将它们括起来。仔细检查按钮代码,您正在写入id、名称和值,但没有正确引用。另外,你需要清理你的代码,这是一团乱!。