0

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

这是我的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>
4

1 回答 1

0

您的代码有很多问题,首先,您定义了一个名为 的 php 函数displaydata,但是在单击提交时调用了一个同名的 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 }这样的东西会很好

于 2012-10-03T14:31:03.517 回答