PHP:不应该$ array [] = $ x;添加一个新的数组项?

时间:2014-04-07 23:27:01

标签: javascript php arrays

我有这个脚本,我用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,结果相同:它只抓取第一次迭代的结果。

这是在Javascript中生成字段的方式:

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
    } 

1 个答案:

答案 0 :(得分:1)

我更愿意回答这个问题而不是删除问题,以防其他人有同样的愚蠢问题: 是的,for循环有一个问题:它应该说lees或等于,而不仅仅是。

所以这个:

  for ($vuelta=1; $vuelta<$totalCeldas; $vuelta++) { 

为此更改:

  for ($vuelta=1; $vuelta<=$totalCeldas; $vuelta++) { 

的工作。

我知道,这很愚蠢,但我觉得删除这个问题还是没有答案是对的。