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