Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将动态添加的行中的值插入数据库_Javascript_Php_Jquery_Sql Server_Autocomplete - Fatal编程技术网

Javascript 如何将动态添加的行中的值插入数据库

Javascript 如何将动态添加的行中的值插入数据库,javascript,php,jquery,sql-server,autocomplete,Javascript,Php,Jquery,Sql Server,Autocomplete,这件事我已经坚持了好几天了。我真的很感谢你的帮助 我正在开发一个php表单,当 用户单击“添加”按钮。 要将值保存到数据库中,用户必须单击“提交” 按钮 我面临的问题是数据库不能保存 动态行中的值。 自动完成&动态行 现在数据被插入到数据库中,但如果用户输入多个项目,则只有一个数据被插入到数据库中。我做错了什么?我猜是在submit.php部分,但我不明白为什么。在提交表单时,$\u POST中不会动态生成行值,因为这些值根本不是表单输入,而是在表中显示为行。但是您可以在jQueryAjax的帮

这件事我已经坚持了好几天了。我真的很感谢你的帮助

我正在开发一个php表单,当 用户单击“添加”按钮。 要将值保存到数据库中,用户必须单击“提交” 按钮 我面临的问题是数据库不能保存 动态行中的值。 自动完成&动态行


现在数据被插入到数据库中,但如果用户输入多个项目,则只有一个数据被插入到数据库中。我做错了什么?我猜是在submit.php部分,但我不明白为什么。

在提交表单时,$\u POST中不会动态生成行值,因为这些值根本不是表单输入,而是在表中显示为行。但是您可以在jQueryAjax的帮助下实现您的功能。单击submit按钮,使用AJAX调用submit.php。下面给出了如何动态检索这些行的值的示例解决方案。您可以根据自己的需求调整此方法

主页

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <title>jQuery Dynamic Rows</title>
    <meta charset="utf-8">
    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    <script>
    $(document).ready(function(){

        $("#add").on("click",function(){

          var rowcount = $("#rowcount").val();
          var row = '<tr class="dynamic" id="'+rowcount+'"><td>'+$("#itemid").val()+'</td><td>'+$("#itemname").val()+'</td><td>'+$("#uom").val()+'</td><td>'+$("#quantity").val()+'</td></tr>'; 

           rowcount = parseInt(rowcount)+1;

           $("#rowcount").val(rowcount);
           $("#dataTab").append(row);
           $("#dataTab").show();
           $("#submit").show();            

        });

        $("#submit").on("click",function(){
                alert("submit");
                var jsonObj = [];
                i=0;
            $("#dataTab tr.dynamic").each(function(){

               var td = $(this).find('td');

                itemId = td.eq(0).text();
                itemName = td.eq(1).text();
                uom = td.eq(2).text();
                quantity = td.eq(3).text();

                jsonObj.push({
                    itemId: itemId,
                    itemName: itemName,
                    uom: uom,
                    quantity: quantity,
                });
            });

            var dataString = JSON.stringify(jsonObj);


                $.ajax({
                    url: "submit.php",
                    type: "POST",
                    data: {json:dataString},
                    success: function(response){
                               alert(response);
                             }
                });

        });

    });

</script>
    </head>

    <body>


     <form name="jqtest" action="#">

       Item ID : <input type="text" name="itemid" id="itemid"/><br/><br/>
       Item name : <input type="text" name="itemname" id="itemname"/><br/><br/>
       UOM : <input type="text" name="uom" id="uom"/><br/><br/>
       Quantity : <input type="text" name="quantity" id="quantity"/><br/><br/>

       <p> <input type="reset" name="reset" id="reset" value="RESET"/>&nbsp;&nbsp;<input type="button" name="add" id="add" value="ADD"/> </p>
        <input type="hidden" name="rowcount" id="rowcount" value="1"/>
     </form>

     <table id="dataTab" style="display:none;" border="1">

      <tr>
        <th>Item ID</th>
        <th>Item name</th>
        <th>UOM</th>
        <th>Quantity</th>
      </tr>

     </table>

    <p> <input style="display:none;" type="button" name="submit" id="submit" value="submit"/> </p>

    </body>

    </html>
submit.php

<?php

  $arr = json_decode($_POST['json']);


  for($i=0; $i<count($arr); $i++)
   {
     echo "Row ".$i."\n";
     echo "itemId > ".$arr[$i]->itemId.", itemName > ".$arr[$i]->itemName.", uom > ".$arr[$i]->uom.", quantity > ".$arr[$i]->quantity."\n";

   }

?>  

仅供参考:当您具有name=stkId[]等属性时。您不需要像在post索引中那样调用它。只需使用$u POST['stkId']。这已经返回了一个array@Ghost但是我想要动态行中的值?这个:就称它为$u POST['stkId']。不需要那个[]@鬼魂它不起作用still@Ghost这样地。从动态行:你能解释一下这部分吗,因为我只是一个初学者,对ajax和json没有基本的了解:$dataTab tr.dynamic.eachfunction{var td=$this.find'td';itemId=td.eq0.text;itemName=td.eq1.text;uom=td.eq2.text;quantity=td.eq3.text;jsonObj.push{itemId:itemId,itemName:itemName,计量单位:计量单位,数量:数量,};};在submit.php上,要将值插入数据库,在循环中,我必须像往常一样编码??因为你给出的代码只是回显到警报框中,但它检索数据。因此,如果你在submit.php和我上面评论的代码上向我解释,我会很高兴。很抱歉,我没有任何关于ajax和json的基本知识。无需担心。我知道了。我很抱歉ean将数据插入数据库。谢谢!你真的救了我:lol抱歉,但我很好奇tho。有没有任何方法可以通过使用jQuery、javascript和php来实现这一切?@AthirahHazira$dataTab tr.dynamic.eachfunction..这部分实际上得到了所有类名为dynamic的tr,并得到了eq0、eq1等对应的td值。他lp获取itemId、itemName等&所有这些值都添加到循环中的javascript对象中。这个Qn是否有任何方法可以通过使用jQuery、javascript和php实现所有这些?是的。当然。因为你是一个初学者,所以需要一些时间来清除所有内容,但你正在做的事情不仅仅是基本的。我真的很感激,因为我不知道怎么做当我在@your age!干杯..的时候,甚至写一行HTML代码
<?php

$num =  $_POST['rowcount'];
for($i=0;$i<$num;$i++)
{

      $strStkId = "";
      if(!empty($_POST)){
          if(isset($_POST["StkId[]"])){
              $strStkId = $_POST["StkId[]"];
          }else{
               echo "<font color=red>Enter the Stock Id</br></font>";
          }

      }
      $strReqQty = "";
      if(!empty($_POST)){
          if(isset($_POST["ReqQty[]"])){
              $strReqQty = $_POST["ReqQty[]"];
          }else{
               echo "<font color=red>Enter the Quantity</font>";
          }

      }

        $tsql =
        "INSERT INTO REQUISITION
        (RequestQuantity, StockId)
        VALUES
        ('$strReqQty','$strStkId')
        ";

        $result = sqlsrv_query($conn, $tsql, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));   

            if (!$result) {
            die ('<script>
                window.alert("Please enter the requisition details !")
                window.location.href = "requisition.php"; </script>');
            }
            else 
            echo '<script>alert("Your Requisition is In Process"); </script>';
            sqlsrv_close($conn);
}
?>
var row = '<tr id="'+rowcount+'"><td>'+$("#ItmId").val()+'</td><td><input readonly="readonly" name="StkId2" value="'+$("#StkId").val()+'"/></td><td>'+$("#ItemName").val()+'</td><td>'+$("#ItmUOM").val()+'</td><td>'+$("#ItmQty").val()+'</td><td><input readonly="readonly" name="ReqQty2" value="'+$("#ReqQty").val()+'"/></td></tr>';
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <title>jQuery Dynamic Rows</title>
    <meta charset="utf-8">
    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    <script>
    $(document).ready(function(){

        $("#add").on("click",function(){

          var rowcount = $("#rowcount").val();
          var row = '<tr class="dynamic" id="'+rowcount+'"><td>'+$("#itemid").val()+'</td><td>'+$("#itemname").val()+'</td><td>'+$("#uom").val()+'</td><td>'+$("#quantity").val()+'</td></tr>'; 

           rowcount = parseInt(rowcount)+1;

           $("#rowcount").val(rowcount);
           $("#dataTab").append(row);
           $("#dataTab").show();
           $("#submit").show();            

        });

        $("#submit").on("click",function(){
                alert("submit");
                var jsonObj = [];
                i=0;
            $("#dataTab tr.dynamic").each(function(){

               var td = $(this).find('td');

                itemId = td.eq(0).text();
                itemName = td.eq(1).text();
                uom = td.eq(2).text();
                quantity = td.eq(3).text();

                jsonObj.push({
                    itemId: itemId,
                    itemName: itemName,
                    uom: uom,
                    quantity: quantity,
                });
            });

            var dataString = JSON.stringify(jsonObj);


                $.ajax({
                    url: "submit.php",
                    type: "POST",
                    data: {json:dataString},
                    success: function(response){
                               alert(response);
                             }
                });

        });

    });

</script>
    </head>

    <body>


     <form name="jqtest" action="#">

       Item ID : <input type="text" name="itemid" id="itemid"/><br/><br/>
       Item name : <input type="text" name="itemname" id="itemname"/><br/><br/>
       UOM : <input type="text" name="uom" id="uom"/><br/><br/>
       Quantity : <input type="text" name="quantity" id="quantity"/><br/><br/>

       <p> <input type="reset" name="reset" id="reset" value="RESET"/>&nbsp;&nbsp;<input type="button" name="add" id="add" value="ADD"/> </p>
        <input type="hidden" name="rowcount" id="rowcount" value="1"/>
     </form>

     <table id="dataTab" style="display:none;" border="1">

      <tr>
        <th>Item ID</th>
        <th>Item name</th>
        <th>UOM</th>
        <th>Quantity</th>
      </tr>

     </table>

    <p> <input style="display:none;" type="button" name="submit" id="submit" value="submit"/> </p>

    </body>

    </html>
<?php

  $arr = json_decode($_POST['json']);


  for($i=0; $i<count($arr); $i++)
   {
     echo "Row ".$i."\n";
     echo "itemId > ".$arr[$i]->itemId.", itemName > ".$arr[$i]->itemName.", uom > ".$arr[$i]->uom.", quantity > ".$arr[$i]->quantity."\n";

   }

?>