PHP在迭代计数器中包装Javascript/JQUERY

PHP在迭代计数器中包装Javascript/JQUERY,javascript,php,jquery,Javascript,Php,Jquery,大家早上好。我有一个问题,我已经为之奋斗了几个小时,似乎无法解决。我正在用PHP编写一个页面,使用JQUERY向表中动态添加行。我分配了一个计数器变量,以保持元素分离以进行处理。PHP打印语句中按钮上的我的代码: <input type=\"button\" class=\"button\" id=\"newrow$i\" value=\"Add Exception\"/> 用PHP包装的JQUERY代码: $x=$i; for ($y = 1; $y <= $i; $y++

大家早上好。我有一个问题,我已经为之奋斗了几个小时,似乎无法解决。我正在用PHP编写一个页面,使用JQUERY向表中动态添加行。我分配了一个计数器变量,以保持元素分离以进行处理。PHP打印语句中按钮上的我的代码:

<input type=\"button\" class=\"button\" id=\"newrow$i\" value=\"Add Exception\"/>
用PHP包装的JQUERY代码:

$x=$i;
for ($y = 1; $y <= $i; $y++) {
    $x++;
    if ($x % 2 == "0") {
        $class2 = "td1";
    } else {
        $class2 = "td2";
    }
    print "\$('#newrow$y').click(function() {\n";
    print "var CFNAME = \$('#cfname$y').val()\n";
    print "var CLNAME = \$('#clname$y').val()\n";
    print "var CID = \$('#rcid$y').val()\n";
    print "var PFNAME = \$('#pfname$y').val()\n";
    print "var PLNAME = \$('#plname$y').val()\n";
    print "var PID = \$('#pid$y').val()\n";
    print "var LANG = \$('#lang$y').val()\n";
    print "var YEAR = \$('#year$y').val()\n";
    print "var CURRICBUNDLE = \$('#curricbundle$y').val()\n";
    print "var BOOK = \$('#curricbookh$y').val()\n";
    print "\$('#curricreqexctable > tbody').append('<tr style=\"text-align: center;\"}><td class=\"$class2\">$x</td><td class=\"$class2\">' + CFNAME + ' ' + CLNAME + '</td><input type=\"hidden\" name=\"ecfid$y\" value=\"' + CID + '\"/><td class=\"$class2\">' + PFNAME + ' ' + PLNAME + '</td><input type=\"hidden\" name=\"epid$y\" value=\"' + PID + '\"><td class=\"$class2\">' + LANG + '</td><input type=\"hidden\" name=\"elang$y\" value=\"' + LANG + '\"><td class=\"$class2\">Year ' + YEAR + '</td><input type=\"hidden\" name=\"eyear$y\" value=\"' + YEAR + '\"><td class=\"$class2\">' + CURRICBUNDLE + '</td><td class=\"$class2\">' + BOOK + '</td></tr><tr><td colspan=\"7\"class=\"$class2\"><textarea style=\"width: 725px; height: 60px; border: 1px solid black; float: left;\" placeholder=\"Why Is Exception Being Requested?\" wrap=\"hard\" required=\"required\"></textarea></td></tr>');";
    print "});\n";
}
这段代码产生的正是我想要的——只有一个例外。当我单击按钮时,会添加一个新行,并正确输入值。然而,id$x似乎被卡住了。假设我为3行表中的第一个条目单击AddException。id显示为4,如预期的那样。如果我再次单击它,每行可能会有多个异常,它会再次打印4-我需要它增加到5。我尝试将它包装到另一个for循环中,既在现有循环的内部也在外部,但没有成功。我也尝试过把$x和递增式都移走,但是运气不好


我感谢你能提供的任何帮助

创建页面时,服务器上的值是递增的,而不是每次添加行时客户端上的值。您应该使用Javascript变量在客户端上递增。谢谢@Barmar。我试过了,但没能使它正确地递增。我在if-else所在的位置声明:var z=0,然后在最终的print语句下面声明:x++。你对我的错误有什么想法吗?你需要发布你的新代码,仅仅从描述很难判断。嗨,Barmar,谢谢你的回复。结果,我的问题在最后是无关紧要的。在没有js迭代的情况下,它正在做客户希望它做的事情: