我目前需要在一个网页动态创建表格,比如10行,填写表格后通过表单提交
代码如下:

        echo "<form name=\"form1\" method=\"post\" action=\"process.php\"><table border='1' id=\"oTable\">
<tr>
<td>文件名</td>
<td>文件大小</td>
<td>播放时间1</td>
<td>播放时间2</td>
<td>播放时间3</td>
</tr>";
$i = 0;
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['filename'] . "</td>";
echo "<td>" . $row['filesize'] . "</td>";//数据表中已经有文件名和文件大小,但是播放时间都默认为0,通过网页修改来update数据库 echo "<td><input name=\"<?php echo $i;$i++; ?>\" type=\"text\"></td>";
echo "<td><input name=\"<?php echo $i;$i++; ?>\" type=\"text\"></td>";
echo "<td><input name=\"<?php echo $i;$i++; ?>\" type=\"text\"></td>";
echo "</tr>"; 
}
echo "<input name=\"submit\" type=\"submit\" value=\"保存\" />";
echo "<br>";
echo "<input name=\"cancel\" type=\"button\" value=\"取消\" onClick=\"window.location.href=\'admincentre.php\'\"/>";
echo "</table></form>"; 我想在process.php中进行处理,
$w = 0;
while($row = mysql_fetch_array($result))
{
$filename = $row['filename'];
$time1 = $_POST["$w"];
$w++;
$time2 = $_POST["$w"];
$w++;
$time3 = $_POST["$w"];
$w++;
echo "此时的w=".$w."<br>";
$sql = "UPDATE fileinfo SET time1='".$time1."',time2='".$time2."',time3='".$time3."' WHERE filename='".$filename."'";
$re = mysql_query($sql) or die("error:".mysql_error());
echo $sql."---结果是:".$re."<br>";
}post过来的$time1,$time2,$time3都是空值,改成$time1 = $_POST[$w]也不行,$time1 = $_POST['$w']也不行,不知道$_POST[]里面的值能否是变量,该怎么表示啊。怎么处理这种提交一个表格的情况!!

解决方案 »

  1.   

    这样试试 $i = 0;
        while($row = mysql_fetch_array($result))
        {
            echo "<tr>";
            echo "<td>" . $row['filename'] . "</td>";
            echo "<td>" . $row['filesize'] . "</td>";//数据表中已经有文件名和文件大小,但是播放时间都默认为0,通过网页修改来update数据库        echo "<td><input name=\"<?php echo 'time1_'.$i; ?>\" type=\"text\"></td>";
            echo "<td><input name=\"<?php echo 'time2_'.$i; ?>\" type=\"text\"></td>";
            echo "<td><input name=\"<?php echo 'time3_'.$i;; ?>\" type=\"text\"></td>";
            echo "</tr>";
     $i++;
        }
      

  2.   

    你先 print_r($_POST); 看看
      

  3.   

    echo "<td><input name=\"<?php echo $i;$i++; ?>\" type=\"text\"></td>";
    echo "<td><input name=\"<?php echo $i;$i++; ?>\" type=\"text\"></td>";
    echo "<td><input name=\"<?php echo $i;$i++; ?>\" type=\"text\"></td>";你这样写表单 就是 <input name=‘1’ type='text'> 用数字的名字
    建议你先在php打印 priny_r($_POST) 看一下有没有值。
    再者建议改一下input 
    echo "<td><input name=\"<?php echo 'time'.$i; ?>\" type=\"text\"></td>";
      

  4.   


    如果使用你的这种命名方式,那么POST语句怎么写
    $time1 = $_POST['time1_'.$i];
    $time2 = $_POST['time2_'.$i];
    $time3 = $_POST['time3_'.$i];
    这是网页运行后的打印输出:UPDATE fileinfo SET time1='',time2='',time3='' WHERE filename='D:\FTP\www\userfile\b\bb.txt'---结果是:1
    得到的$time1的值都是空的
    不知道post语句里面怎么处理变量命名
      

  5.   

    再补充一下,我的update语句是这样的,应该没有错误吧 $w = 0;
    while($row = mysql_fetch_array($result))
    {
    $filename = $row['filename'];
    $time1 = $_POST['time1_'.$w];
    print_r($time1);
    $time2 = $_POST['time2_'.$w];
    print_r($time2);
    $time3 = $_POST['time3_'.$w];
    print_r($time3);
    $w++;
    echo "此时的w=".$w."<br>";
    $sql = "UPDATE fileinfo SET time1='".$time1."',time2='".$time2."',time3='".$time3."' WHERE filename='".$filename."'";
    $re = mysql_query($sql) or die("error:".mysql_error());
    echo $sql."---结果是:".$re."<br>";
    }
      

  6.   

    谢谢yubinding 和zqs_0909
    我已经按照你们说的更改了命名方式,如今post有值了,但是php语句总是更新不了数据库数据库连接成功,没有报错不知道为什么,求大牛指点,我的更新数据库代码如下: $w = 0;
    while($row = mysql_fetch_array($result))
    {
    $filename = $row['filename'];
    $time1 = $_POST['time1_'.$w];
    print_r($time1);
    $time2 = $_POST['time2_'.$w];
    print_r($time2);
    $time3 = $_POST['time3_'.$w];
    print_r($time3);
    $sql = "update fileinfo set time1='$time1',time2='$time2',time3='$time3' where filename='$filename'";
    $re = mysql_query($sql) or die("error:".mysql_error());
    echo $sql."---结果是:".$re."<br>";
    $w++;
    }