这一段代码中出现了3个错误,导致最后的结果没有如你所料。ed.innerHTML = ed.innerHTML + ' <input name='+(i++)+'type="text" value='+i+'> <br>' 第一个地方name='+(i++)+'这个地方应该将名字用双引号包括起来,因为后便和type中间没有隔开。正确的是 name="'+(i++)+'",或者在type前面空出一个空格:name='+(i++)+' type,另一个地方是虽然前面用i++了,但后面的i还是没有增加1,也就是导致value和name并不相等。正确的用法是 先i++一下,然后再使用i。最后的结果就是:
i++
ed.innerHTML = ed.innerHTML + ' <input name='+i+' type="text" value='+i+'> <br>' 还有一处错误:
echo $_POST['$i']." <br>"; 
在单引号下中间的所有字符,php都不会进行解释,正确的写法应该是 echo $_POST["$i"]." <br>"; 或者echo $_POST[$i]." <br>"; 最后的话,不妨来试试:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档 </title>
</head>
<script>
        var i=1
        function addEdit(){
                if(i>7){
                    return
                }
                var ed = document.getElementById("ed");
                i++;
                ed.innerHTML = ed.innerHTML + ' <input name="'+i+'" type="text" value="'+i+'"> <br>'
        }
</script>
<body>
<button name="add" onclick="addEdit()">添加 </button><form method=post action=''>
<div id="ed">
<input name="1" type="text" value="1"> <br>
</div>
<input type="submit" value="submit">
</form>
<?php
echo $_POST['1'];//这句有效
echo $_POST['2'];//这句无效,下面循环都无效
for($i=1; $i <8;$i++){
echo $_POST[$i]." <br>";
}
?>
</body>
</html>