Php 在表单上添加更多字段并插入mysql数据库

Php 在表单上添加更多字段并插入mysql数据库,php,javascript,mysql,Php,Javascript,Mysql,我有一个表单,我想给一个添加更多项目的链接来添加三个文本框。用户最多可以添加7次。这意味着用户可以一次输入7项 第二个问题是,我想将这7个项目分别插入mysql表中。我该怎么做呢 <form name="frmaddservice" action="" method="post" class="jNice" onsubmit="return checkaddservice();"> <p><label>Customer Name:</label

我有一个表单,我想给一个添加更多项目的链接来添加三个文本框。用户最多可以添加7次。这意味着用户可以一次输入7项

第二个问题是,我想将这7个项目分别插入mysql表中。我该怎么做呢

<form name="frmaddservice" action="" method="post" class="jNice" onsubmit="return checkaddservice();">

    <p><label>Customer Name:</label><input name="txtcustname" type="text" class="text-long" /></p>
    <p><label>Customer Phone:</label><input name="txtcustphone" type="text" class="text-long" /></p>        
    <p><label>Customer Email:</label><input name="txtcustemail" type="text" class="text-long" /></p>
    <div id="fieldset">
    <p><label>Item Type:</label>
        <select name="seltype">
        <option>Select Type</option>
        <?php
            while($rowitem = mysql_fetch_assoc($seltype))
            {
        ?>
            <option><?php echo $rowitem['item_name']; ?></option>
        <?php
            }
        ?>
        </select>
    </p>
    <p><label>Item Brand</label><input name="txtitembrand" type="text" class="text-long"></textarea></p>        
    <p><label>Item Quantity:</label><input name="txtqty" type="text" class="text-long" /></p>        
    <p><label>Item Description</label><textarea name="txtdesc"></textarea></p>
    <p><label>Item Warranty Date:</label><input name="txtdate" type="text" class="text-long" /> 
    <script language="JavaScript">
        new tcal ({
        // form name
        'formname': 'frmaddservice',
        // input name   
        'controlname': 'txtdate'
        });
    </script>
    </p>

    <input type="submit" value="Add Service"/>
    </div>

</form>

客户名称:

客户电话:

客户电子邮件:

项目类型: 选择类型

商品品牌

项目数量:

项目说明

项目保修日期: 新tcal({ //表格名称 'formname':'frmaddservice', //输入名称 “controlname”:“txtdate” });

我已经上传了,请看一下

验证码

<SCRIPT TYPE="TEXT/JAVASCRIPT">function IsNumeric(strString)
{
    var strValidChars = "0123456789";
    var strChar;
    var blnResult = true;
    if (strString.length == 0) return false;
    for (i = 0; i < strString.length && blnResult == true; i++)
    {
        strChar = strString.charAt(i);
        if (strValidChars.indexOf(strChar) == -1)
        {
            blnResult = false;
        }
    }
        return blnResult;
}function checkaddservice(){
with (window.document)
{
    if(frmaddservice.txtcustname.value == "")
    {
        alert("Please enter Customer's Name.");
        frmaddservice.txtcustname.focus();
        return false;
    }
    if(frmaddservice.txtcustphone.value == "")
    {
        alert("Please enter Customer's phone.");
        frmaddservice.txtcustphone.focus();
        return false;
    }
    if(IsNumeric(frmaddservice.txtcustphone.value) == "false")
    {
        alert("Please enter Valid phone.");
        frmaddservice.txtcustphone.focus();
        return false;
    }
    for(var i=0; i<7; i++)
    {
        if(frmaddservice.elements["seltype" + i].value == "Select Type")
        {
            alert("Please Select Item Type!");
            return false;
        }
        if(frmaddservice.elements["txtqty" + i].value == "")
        {
            alert("Please Enter Item Quantity!");
            return false;
        }
        var qty = frmaddservice.elements["txtqty" + i].value;
        if(IsNumeric(qty) == "false")
        {
            alert("Please Enter Valid Quantity!");
            frmaddservice.elements["txtqty" + i].focus();
            return false;
        }
    }
}}</SCRIPT>
函数为数值型(strString)
{
var strValidChars=“0123456789”;
var-strChar;
var blnResult=真;
if(strString.length==0)返回false;
对于(i=0;i
  • []
    添加到
    名称
    属性的末尾
  • 在按钮的
    上单击
    ,克隆它们
  • 继续操作时,请检查以确保少于7

    • 您必须使用php吗?如果您使用javascript,您可以添加字段而无需刷新页面

      <!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">
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>Untitled Document</title>
      <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
      <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
      <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js"></script>
      <script type="text/javascript" charset="utf-8">
          $(function(){
      
          $(".datepicker").live('click', function() {
              $(this).datepicker({showOn:'focus'}).focus();
          });
          });
          </script>
      <script type="text/javascript">
      var num=0;
      function addField(){
          num++;
          if(num>7){num--;}
          makefields();
      }
      function rmField(){
          num--;
          if(num<0){num++;}
          makefields();
      }
      
      function makefields(){
      var fields="";
      for(var o=0;o<=num;o++){
      fields+="<p><label>Item Type:</label><select name=\"seltype"+o+"\"><option>Select Type</option>";
      <?php $seltype = mysql_query("select * from tblitemtype"); while($rowitem = mysql_fetch_assoc($seltype)){ echo "fields+=\"<option>".$rowitem['item_name']."</option>\";"; } ?>
      fields+="</select></p>";
      fields+="<p><label>Item Brand</label><input name=\"txtitembrand"+o+"\" type=\"text\" class=\"text-long\"></textarea></p>";
      fields+="<p><label>Item Quantity:</label><input name=\"txtqty"+o+"\" type=\"text\" class=\"text-long\" /></p>";
      fields+="<p><label>Item Description</label><textarea name=\"txtdesc"+o+"\"></textarea></p>";
      fields+="<p><label>Item Warranty Date:</label><input name=\"txtdate"+o+"\" type=\"text\" class=\"datepicker\">";
      }
      fields+="<br/><input type=\"hidden\" name=\"num\" value=\""+o+"\"/>";
      if(num!=6){fields+="<button type=\"button\" onclick=\"addField()\">Add</button>";}
      if(num>0){fields+="<button type=\"button\" onclick=\"rmField()\">Remove</button>";}
      fields+="<input type=\"submit\" value=\"Add Service\"/></form>";
          document.getElementById("fields").innerHTML=fields;
      }
      </script>
      <script language="JavaScript" src="calendar_us.js"></script>
      
      </head>
      
      <body>
      <form name="frmaddservice" action="" method="post" class="jNice" onsubmit="return checkaddservice();">
      <fieldset>
          <p><label>Customer Name:</label><input name="txtcustname" type="text" class="text-long" /></p>
          <p><label>Customer Phone:</label><input name="txtcustphone" type="text" class="text-long" /></p>        
          <p><label>Customer Email:</label><input name="txtcustemail" type="text" class="text-long" /></p>
          <div id="fields">
          <p><label>Item Type:</label>
              <select name="seltype0">
              <option>Select Type</option>
              <?php $seltype = mysql_query("select * from tblitemtype");
                  while($rowitem = mysql_fetch_assoc($seltype))
                  {
              ?>
                  <option><?php echo $rowitem['item_name']; ?></option>
              <?php
                  }
              ?>
              </select>
          </p>
          <p><label>Item Brand</label><input name="txtitembrand0" type="text" class="text-long"></textarea></p>       
          <p><label>Item Quantity:</label><input name="txtqty0" type="text" class="text-long" /></p>        
          <p><label>Item Description</label><textarea name="txtdesc0"></textarea></p>
          <p><label>Item Warranty Date:</label><input name="txtdate0" type="text" class="datepicker"/> 
          </p>
          <input type="hidden" name="num" value="1"/><a href="#" onclick="addField()">Add</a>
          <input type="submit" value="Add Service"/>
          </div>
      </fieldset>
      </form>
      
      
      </body>
      </html>
      
      
      无标题文件
      $(函数(){
      $(“.datepicker”).live('click',function(){
      $(this.datepicker({showOn:'focus'}).focus();
      });
      });
      var num=0;
      函数addField(){
      num++;
      如果(num>7){num--;}
      makefields();
      }
      函数rmField(){
      num--;
      if(num
      字段+=“

      ”; 字段+=“项目品牌”

      ”; 字段+=“项目数量:

      ”; 字段+=“项目说明”

      ”; 字段+=“项目保修日期:”; } 字段+=“
      ”; 如果(num!=6){fields+=“Add”} 如果(num>0){fields+=“Remove”;} 字段+=“”; document.getElementById(“字段”).innerHTML=字段; } 客户名称:

      客户电话:

      客户电子邮件:

      项目类型: 选择类型

      商品品牌

      项目数量:

      项目说明

      项目保修日期:

      然后需要修改此脚本以容纳所有字段,并将数据发送到现有的不同表:

      <?php
      //your connection data
      $sets=mysql_real_escape_string($_REQUEST["num"]);
      for($loop=0;$loop<$sets;$loop++){
          $b="txtitembrand".$loop;
          $q="txtqty".$loop;
          $d="txtdesc".$loop;
              $brand=mysql_real_escape_string($_REQUEST[$b]);
              $quantity=mysql_real_escape_string($_REQUEST[$q]);
              $description=mysql_real_escape_string($_REQUEST[$d]);
          $store="INSERT INTO tablename (itembrand,quantity,desc) VALUES ('$brand',$quantity,'$description')";
          $go=mysql_query($store);
          }
      ?> 
      

      首先,你的HTML看起来有点滑稽。。。
      我只想稍微修改一下:

      <fieldset>
        <label for='brand'>Item Brand</label><br>
        <input id='brand' name="txtitembrand" type="text" class="text-long"><br>   
        <label for='quantity'>Item Quantity</label><br>
        <input id='quantity' name="txtqty" type="text" class="text-long"><br>      
        <label for='desc'>Item Description</label><br>
        <textarea id='desc' name="txtdesc"></textarea><br>
        <input type="submit" value="Add Service"/>
      </fieldset>
      

      那么…到目前为止你尝试了什么?我不知道。我只是在学习
      输入旁边的phpA
      标签
      ,它们之间没有任何语义关系;将
      输入
      作为
      标签
      的子项,或者将它们与
      链接以获得
      /
      id
      。你能建议我如何在点击按钮并插入它吗nto tablephp脚本发送给我3个错误未定义索引:txtitembrand1在C:\wamp\www\KC\test1.php的第9hi Robot Woods行,有一些问题,我想在页面加载时显示1个字段集。然后,如果用户想添加更多字段,他可以添加。我做了更改,但在覆盖旧版本之前,看看我做了什么,以便您理解如何根据需要继续进行更改。(如果您觉得问题已经解决,请接受答案)我在代码中进行了更改。我只希望用户只能添加字段集id的内部字段。我不希望添加客户信息的字段,也希望将这些字段插入到2个表中。使用代码时,字段中出现未终止的字符串文字错误+=“…请帮帮我,我想用javascript完成。机器人伍兹的代码很好用。谢谢
      <a href='/mypage.php?action=addrows&numrows=7'>Add more rows!</a>
      
      echo '<a href="/mypage.php?action=addrows&numrows=' . $_SESSION['numrows'] . '>Add more rows!</a>';
      
      if (isset($_GET['action']) && $_GET['action'] == 'addrows') {
        if (isset($_GET['numrows'])) {
          $numrows = 0 + $_GET['numrows'] // add zero to cast to int
          if ($numrows > 0 && $numrows <= 7) {
            $_SESSION['numrows'] = $numrows;
          }
        }
      }
      
      for ($i = 0; $i < $_SESSION['numrows']; $i++): ?>
       <fieldset>
        ...
         <input ... name='txtqty<?php echo $i ?>'
        ...
       </fieldset>
       <?php endfor; ?>
      
      INSERT INTO tablename (col1, col2, col3...)
      VALUES (row1col1, row1col2, row1col3...) (row2col1...)