2

そのフォームに1つのテキストボックスを含むフォームを1つ作成し、別のボタンと保存ボタンを追加し、別のボタンのクリックイベントで新しいテキストボックスが生成されますが、保存ボタンをクリックすると、新しく生成されたテキストボックスの値をデータベースに保存できません。私を導くことができます

これが私のコードです:

<?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);    //create connection object.

    return($oMysqli);   
}
if(isset($_POST['submit']))
{
    $TestParameters = $_POST['testparameters'];
    $InsertQuery = "INSERT INTO test_table VALUES('$TestParameters')";
    $oMysqli=getConnection();
    $oMysqli->query($InsertQuery);

    //print_r($InsertQuery);exit();
    if(!$InsertQuery)
                {
                    die('Could not enter data:' . mysql_error());
                }
}
?>
<html>
<head>
<title>TestData</title>
<script type="text/javascript"> 
function create_row()   
{
      var newtr=document.createElement("tr");   
      var newtd=document.createElement("td");  
    var output="<input type=\"text\" name=\"testparameters\">";
      newtd.innerHTML=output;  
      newtr.appendChild(newtd); 
      document.getElementById("table1body").appendChild(newtr);

}
</script>
 </head>
<body>
<form name="testdetails" method="post" target="_self" action="<?php $_PHP_SELF ?>">

<label for="Testparameter">Testparameter</label>
<input type="text" name="testparameters"></input>
    <table id="table1body">
           <tr>     
     <td><input type="button" name="button" value="Add Test Parameter" onclick="create_row()"> 
          </tr>
    </table>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
4

3 に答える 3

2

これを試して

if(isset($_POST['submit']))
    {

        $length = count($_POST['testparameters']);

        for($i=0; $i< $length; $i++){
            $TestParameters=$_POST['testparameters'][$i];
            if(!empty($TestParameters)){
            $InsertQuery = "INSERT INTO color(name) VALUES('$TestParameters')";
            $result=mysql_query($InsertQuery) or die(mysql_error());
        }
        }
        if(!$InsertQuery)
        {
            die('Could not enter data:' . mysql_error());
            }
    }
于 2012-11-23T06:39:12.020 に答える
0

すべてのテキストボックスに同じ名前を使用しています

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

これには配列を使用します。これから、すべてのテキストボックスの値を取得します

<input type="text" name="testparameters[]"></input>

テキストボックスの値を反復するためのコード

$length = count($_POST['testparameters']);
for($i=0; $i< $length; $i++){
    echo $_POST['testparameters'][$i];
}
于 2012-09-21T11:40:20.813 に答える