如何使用PHP中的for循环在MySQL数据库中保存动态创建的文本框值?

时间:2013-01-23 15:04:06

标签: php javascript html mysql

我正在尝试从动态创建的文本框中保存值,但我的问题是,当我保存多个文本框时,它会保存循环中最后生成的文本框的值。 这是我的代码:

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<script language="javascript" type="text/javascript">
var i=0;
function addRow()
{
          var tbl = document.getElementById('table1');
          var lastRow = tbl.rows.length;
          var iteration = lastRow - 1;
          var row = tbl.insertRow(lastRow);

          var firstCell = row.insertCell(0);
          var el = document.createElement('input');
          el.type = 'text';
          el.name = 'name' + i;
          el.id = 'name' + i;
          el.size = 20;
          el.maxlength = 20;
          firstCell.appendChild(el);

          var secondCell = row.insertCell(1);
          var el2 = document.createElement('input');
          el2.type = 'text';
          el2.name = 'address' + i;
          el2.id = 'address' + i;
          el2.size = 20;
          el2.maxlength = 20;
          secondCell.appendChild(el2);

          var thirdCell = row.insertCell(2);
          var el3 = document.createElement('input');
          el3.type = 'text';
          el3.name = 'contactNum' + i;
          el3.id = 'contactNum' + i;
          el3.size = 20;
          el3.maxlength = 20;
          thirdCell.appendChild(el3);
          alert(i);
          i++;
          frm.h.value=i;
          alert(i);

}
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title></head>

<body>
<form action="submit.php" method="post" name="frm" id="frm">
<table width="40%" border="2" cellpadding="0" cellspacing="0" id="table1">
  <tr>
    <td><strong>Name</strong></td>
    <td><strong>Address</strong> </td>
    <td><strong>Contact Num</strong> </td>
  </tr>
  <tr>
    <td><input name="name" type="text" id="name" size="20" maxlength="20" /></td>
    <td><input name="address" type="text" id="address" size="20" maxlength="20" /></td>
    <td><input name="contactNum" type="text" id="contactNum" size="20" maxlength="0" /></td>
  </tr>

</table>
<input type="button" value="Add" onclick="addRow();" />
<input name="Submit" type="submit" value="Submit" />
<label>
<input name="h" type="hidden" id="h" value="0" />
</label>
</form>
</body>
</html>

这是我的submit.php代码

<?php
mysql_connect("localhost", "root", '') or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
$num = $_POST['h'];
if ($num == 0) {
    $name = $_POST['name'];
    $address = $_POST['address'];
    $contactNum = $_POST['contactNum'];
    $strQuery = "INSERT INTO `com` Values('$name','$address','$contactNum')"; //for error controling
    $result = mysql_query("INSERT INTO com VALUES('$name', '$address', '$contactNum')") or die(mysql_error());
} else {
    for ($i = 0; $i <= $num; $i++) {
        if (isset($_REQUEST["name$i"])) {
            $name = $_REQUEST["name$i"];
        }
        if (isset($_REQUEST["address$i"])) {
            $address = $_REQUEST["address$i"];
        } 
        if (isset($_REQUEST["contactNum$i"])) {
            $contactNum = "yaser";
        } 
        $strQuery = "INSERT INTO `com` Values('$name','$address','$contactNum')"; //for error controling
        $result = mysql_query($strQuery) or die(mysql_error());
    }
}
        print '<script type="text/javascript">';
        print 'alert("RECORDS ADDED SUCCESSFULLY")';
        header('refresh: 2; index.php');
        PRINT '</script>';
?>

0 个答案:

没有答案