将运行时创建的表数据保存到数据库

时间:2012-09-28 11:15:35

标签: php javascript html mysql

我创建了一个包含两个文本框和表格的表单。一个提交按钮,当我输入行数&列并单击提交按钮,行数和行数在表格中生成列表结构,当我在该表中输入数据时,我想将该数据保存到数据库中。如果您有任何演示示例,请在紧急情况下向我提出,请提前致谢..

这是我的PHP代码:

<?php
 include_once "dreportCreation.php";
        {       
            if(isset($_POST['submit']))
                function displaydata($column,$rows)             
                    {       
                        echo "<table border='1' align='center'>";           
                        for($i = 0;$i<$_POST['column'];$i++)       
                        { 
                            echo "<tr>".$j."</tr>";                              
                            for($j = 0; $j <$_POST['rows'];$j++)         
                                {

                                    echo "<td>" ."<input type=\"text\" name='$i'>"."</td>"; 
                                }
                        }
                        echo "</table>";
                    }
        }
    ?>
    <html>
    <head>
    <title>aa</title>
    </head>
    <body>
        <form name="reportCreation" method="post" action="dd.php">
                        <label for='Table'>Define Table</label>
                        <label for='rows'>Row</label>
                        <input type="text" name="column"></input>
                        <label for='column'>Column</label>
                        <input type="text" name="rows"></input>
                        <input type="submit" name="submit" value="submit" onclick="displaydata();">
        </form>
    </body>
    </html>

1 个答案:

答案 0 :(得分:0)

您的代码存在许多问题,首先,您正在定义名为displaydata的PHP函数,但在单击提交时调用具有相同名称的javascript函数。所以页面重新加载并在表单外部(和<html>标签之前)发送输入,前提是你在php内的任何地方调用函数... 至于输入,您应该为每列创建一个数组输入,如下所示:

echo "<table border='1' align='center'>";           
for($i = 0;$i<$_POST['column'];$i++)       
{ 
    echo "<tr>".$j."</tr>";                              
    for($j = 0; $j <$_POST['rows'];$j++)         
    {
          echo "<td>" ."<input type=\"text\" name='column_$i[$j]'>"."</td>"; // you should provide a beter name than simly a number ... just saying :)
    }
}
echo "</table>";

这样,当您获得有关php的信息时,您将在$_POST['i']['j']上获得一个数组,并且可以将它们全部保存。否则,您只能获得每列的最后一个输入。

一个工作示例可能是:

<?php
 include_once "dreportCreation.php";
 function displaydata($column,$rows)             
 {       
      echo "<table border='1' align='center'>";           
      for($i = 0;$i<$_POST['column'];$i++)       
      { 
            echo "<tr>".$j."</tr>";                              
            for($j = 0; $j <$_POST['rows'];$j++)         
            {
                  echo "<td>" ."<input type=\"text\" name='column_$i[$j]'>"."</td>"; 
            }
       }
       echo "</table>";
  }
  ?>
    <html>
    <head>
    <title>aa</title>
    </head>
    <body>
        <form name="reportCreation" method="post" action="dd.php">
                        <label for='Table'>Define Table</label>
                        <label for='rows'>Row</label>
                        <input type="text" name="column"></input>
                        <label for='column'>Column</label>
                        <input type="text" name="rows"></input>
                        <input type="submit" name="submit" value="submit">

<?Php 
if (isset($_POST['submit'])) displaydata(); // Show data INSIDE form
?>

        </form>
    </body>
    </html>

顺便说一句,您仍需要在帖子上检测发送的数据是否已保存。像if (isset($_POST['column_0'])) { //start saving stuff }这样的东西就可以了。