0

行数と列数を入力すると1つのフォームが作成され、その数の行数と列テーブルが生成され、そのテーブルに入力された値をデータベースに保存したい.誰かが私を助けてくれる..私のPHPコード:

<?php
   global $Hostname;   
    global $Username;   
    global $Password;           
    global $Database_name;  
function getConnection()    
{
    $Hostname = "localhost";    
    $Username ="root";
    $Password ="";
    $Database_name="labdata";

    $oMysqli = new mysqli($Hostname,$Username,$Password,$Database_name);   
    return($oMysqli);   
}
if(isset($_POST['submit']))
{       
    echo "<table border='1' align='center'>";           
    for($iii = 0;$iii <$_POST['column'];$iii++)         
    {               
        echo "<tr>".$jjj."</tr>";                           
        for($jjj = 0; $jjj <$_POST['rows'];$jjj++)  //loop for display no. of rows.
        {
          echo "<td>" ."<input type=\"text\" name='$iii'>"."</td>";
        }
    }
    echo "</table>";
    echo"<form name=\"aa\" method=\"post\">";
    echo "<input type=\"submit\" name=\"save\" value=\"save\">";
    echo "</form>";
}
$TestName = $_POST['testname'];
$Result = $_POST['result'];
$Unit = $_POST['unit'];
$NormalRange = $_POST['NormalRange'];

if(isset($_POST['save']))
{
    $InsertQuery = "INSERT INTO rct(testname,result,unit,NormalRange) VALUES('$TestName','$Result','$Unit','$NormalRange')";
    $oMysqli= getConnection();
    $oMysqli->query($InsertQuery);

    print_r($InsertQuery);exit();

    while($Row = $InsertQuery->fetch_array())
    {
        $TestName = $Row['testname'];
        $Result = $Row['result'];
        $Unit = $Row['unit'];
        $NormalRange = $Row['NormalRange'];
    }   
 }
?>
<html>
<head>
<title>Rct</title>
</head>
<body>
<form name='abc' method="post">
        <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="aaa()">
</form>
</body>
</html>
4

2 に答える 2

0

コードには多くの問題があります。

  1. <input/>sを含むテーブルは。内にある必要があり<form name='aa'>ます。

  2. テーブルにある入力には、のような名前を付ける必要があります$iii[]

[]はPHPに、のすべての行の配列を作成するように指示します。これにより、行0、列0、行2、列1などに$_POSTアクセスできます。$_POST[0][0]$_POST[1][2]

  1. 行と列が逆になっているようです。

  2. すべての<input/>タグにがありません/

  3. 、、、という名前testnameの入力を持つフォームがないのにresult、なぜこれらの値にアクセスするのですか?unitNormalRange$_POST

  4. fetch_array()SELECTクエリの後でのみ使用できます。INSERT値を返しません。

おそらく私が逃した他のこと。

于 2012-10-02T08:47:43.947 に答える
0

まず、入力タグを修正する必要があります

交換

<input type="text" name="column"></input>

<input type="text" name="column" />

列が行の内側にあるため、2番目の上部ループは列ではなく行ループでなければなりません

if(isset($_POST['submit']))
{       
    echo"<form name=\"aa\" method=\"post\">";
    echo "<table border='1' align='center'>";           
    for($iii = 0;$iii <$_POST['rows'];$iii++)         
    {               
        echo "<tr>";//start Row here                          
        for($jjj = 0; $jjj <$_POST['column'];$jjj++)  //loop for display no. of rows.
        {
          echo "<td>" ."<input type=\"text\" name='".$iii.$jjj."'>"."</td>";//all TDs must be inside the row
        }
        echo "</tr>";//end row here
    }
    echo "</table>";        
    echo "<input type=\"submit\" name=\"save\" value=\"save\">";
    echo "</form>";
}

もちろん、テーブルはフォーム内にある必要があります。

これが役立つかどうか教えてください

于 2012-10-03T07:11:36.230 に答える