当我把数组变量($f_cpmc[])换成普通变量($f_cpmc ),这样提交到下个页面的值却是正确的。 是php的Bug,还是我使用的方法有问题!

解决方案 »

  1.   

    在输入中,把你循环中的那句话改成
    <input type="text" name="f_cpmc[<?echo $i;?>]" size="20" style="border-style: solid; border-width: 0"> ($i是循环控制变量)
    在输出时也不用什么foreach,就用for循环.
    $sn=count($f_cpmc);
    for($j=0;$j<$sn;$j++){
    echo "f_cpmc[$j]=$f_cpmc[$j]<br>";
    }
      

  2.   

    <?
    if($submit=="添加到数据库"){
    for($i=1;${"name".$i};$i++){
    $sql="insert into table values ('".${"name".$i}."','".${"age".$i}."','".${"sex".$i}."')";
    query($sql);
    }
    }
    echo '<form method=post>';
    for($i=1;${"name".$i};$i++){
      echo '姓名<input name="name'.$i.'" value='.${"name".$i}.'>';
      echo '年龄<input name="age'.$i.'" value='.${"age".$i}.'>';
      echo '性别<input name="sex'.$i.'" value='.${"sex".$i}.'><br>';
    }
    echo '姓名<input name="name'.$i.'">';
    echo '年龄<input name="age'.$i.'">';
    echo '性别<input name="sex'.$i.'"><br>';
    echo '<input type=submit value="加入此行">';
    echo '<input type=submit name=submit value="添加到数据库">';
    echo '</form>';
    ?>
      

  3.   

    to  telescope(望远镜):我用你的方法试过了,还是不行!请看我的测试代码!ls.php<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE>test</TITLE>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <link rel="stylesheet" href="css.css" type="text/css">
    </HEAD><BODY bgcolor="#CCCCCC">
    <div align="center"> 
      <form name="form_kucun" method="post" action="ls1.php">
                      <table width="680" border="0" cellspacing="1" cellpadding="0">
    <?
    for ( $i = 0 ; $i < 9 ; $i++){
    ?>
    <tr bgcolor="#FFFFFF"> 
      <td height="30" width="170" valign="bottom"> 
    <div align="center"> 
      <input type="text" name="f_cpmc[<?echo $i;?>]" size="20">
    </div>
      </td>
    </tr>
    <?
    }
    ?>
      </table><table width="600" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td> 
              <div align="right">
                <input type="Submit" class=buttom name="submit" value=" 提交数据 ">
                <input type="reset" class=buttom name="reset" value=" 清除内容 ">
              </div>
            
          </tr>
     </table>
    </form>
    </body>
    </html>
    ls1.php<?$sn = count( $_POST["f_cpmc"] );for ( $i = 1; $i < $sn; $i++) {
    echo "f_cpmc[$i]=$f_cpmc[$i]<br>";
    }
    ?>
    我在TEXT框中输入123456789,提交后显示如下:f_cpmc[1]=56789
    f_cpmc[2]=56789
    f_cpmc[3]=56789
    f_cpmc[4]=56789
    f_cpmc[5]=56789
    f_cpmc[6]=56789
    f_cpmc[7]=56789
    f_cpmc[8]=
    to uGain(幽亙) :
    在for循环中的${"name".$i}是什么意思啊!没有用过这种方法!
      

  4.   

    ${"name".$i}是当变量(个数)名不确定时的写法。
    放在for循环中,得到的变量名就分别是$name1,$name2.....
      

  5.   

    可是在你写的循环中,for($i=1;${"name".$i};$i++){
      echo '姓名<input name="name'.$i.'" value='.${"name".$i}.'>';
      echo '年龄<input name="age'.$i.'" value='.${"age".$i}.'>';
      echo '性别<input name="sex'.$i.'" value='.${"sex".$i}.'><br>';
    }${"name".$i}的位置应该是结束循环的标志啊!你这样写不明白!
      

  6.   

    for ( $i = 0; $i < $sn; $i++) {
    echo "f_cpmc[$i]=$f_cpmc[$i]<br>";
    }数组从0开始。
      

  7.   

    我用的是php4-2-3和mysql和apache.
      

  8.   

    我找到问题出在那儿啦!在php.ini中有我打开了一项:extension=php_mbstring.dll当我把这一项关于后,就没有错了。呵呵,谢谢各位!