我有这个脚本,我用javascript动态生成一堆文本输入。
之后,我想在两者之间进行迭代,以便对其内容进行求和并进行计算。
每次迭代的结果都应该添加到数组的末尾。我不知道为什么,但是每次循环重新开始时,数组内容似乎都被替换了,它应该添加由循环创建的新元素。但它唯一的内容是第一个,而不是最后添加的内容。
$totalCeldas = strip_tags($_POST['totalCeldas']);
$mesesTotales = array();
for ($vuelta=1; $vuelta<$totalCeldas; $vuelta++) {
$mes = 'mes'.$vuelta;
$anio = 'yr'.$vuelta;
$exp = 'exp'.$vuelta;
$valorMes = strip_tags($_POST[$mes]);
$valorAnio = strip_tags($_POST[$anio]);
$x = (($tYear - $valorAnio ) * 12) + ($tMonth- $valorMes);
$mesesTotales[] = $x;
echo '$valorAnio '.$valorAnio.'<br>';
echo '$valorMes '.$valorMes.'<br>';
//I´ve tried printing out each iteration in order to get to the problem, but it only prints out the first value.
foreach($mesesTotales as $valor){
echo 'El valor es '.$valor.'<br>';
}
我也尝试了array_push,结果相同:它只抓取第一次迭代的结果。
function generarTabla1() {
var cant = document.forms["generar-tabla"]["cantMeses"].value;
if (cant && !isNaN(cant)) {
for ($i=0; $i<cant; $i++) {
var e = 0;
var celdaMes = " Mes <input style='width:5%;' type='text' name='mes"+($i+1)+"'> ";
var celdaYr = " Año <input style='width:8%;' type='text' name='yr"+($i+1)+"'> ";
var celdaExp = " Expensa $<input style='width:15%;' type='text' name='exp"+($i+1)+"'>
<br>";
$('#output').append(celdaMes, celdaYr, celdaExp); //agregamos las celdas necesarias
}
答案 0 :(得分:1)
我更愿意回答这个问题而不是删除问题,以防其他人有同样的愚蠢问题: 是的,for循环有一个问题:它应该说lees或等于,而不仅仅是。
所以这个:
for ($vuelta=1; $vuelta<$totalCeldas; $vuelta++) {
为此更改:
for ($vuelta=1; $vuelta<=$totalCeldas; $vuelta++) {
的工作。
我知道,这很愚蠢,但我觉得删除这个问题还是没有答案是对的。