Javascript 希望从表单表在MySql中添加值
我已经试着解决这个问题一段时间了,但还没有找到解决办法。我仍然在学习阶段,这是我的第一个项目,使一个网站的形式从头开始 我有一个表单,其中有一个表,用户可以填写信息并添加新行 我想知道如何将其保存在MySql中。 希望你能帮我 Html代码如下所示Javascript 希望从表单表在MySql中添加值,javascript,php,mysql,Javascript,Php,Mysql,我已经试着解决这个问题一段时间了,但还没有找到解决办法。我仍然在学习阶段,这是我的第一个项目,使一个网站的形式从头开始 我有一个表单,其中有一个表,用户可以填写信息并添加新行 我想知道如何将其保存在MySql中。 希望你能帮我 Html代码如下所示 <div class="table-responsive"> <table class="table table-bordered table-hover" id="tab_logic"> <thead>
<div class="table-responsive">
<table class="table table-bordered table-hover" id="tab_logic">
<thead>
<tr>
<th>#</th>
<th>Varenavn</th>
<th>Mengde</th>
<th>Enhet</th>
<th>Pris</th>
</tr>
</thead>
<tfoot>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td><a id="add_row" class="btn btn-success pull-right">Add Row</a><a id='delete_row' class="pull-right btn btn-danger">Delete Row</a></td>
</tr>
</tfoot>
<tbody>
<tr id='addr0'>
<td>1</td>
<td><input type="text" name='v_navn0' placeholder='Varenavn' class="form-control" /></td>
<td><input type="text" name='mengde0' placeholder='Mengde' class="form-control" /></td>
<td><select name='enhet0' placeholder='Enhet' class='form-control input-md'><option>KG</option><option>GR</option><option>L</option<option>DL</option></select></td>
<td><input type="text" name='pris0' placeholder='Pris' class="form-control" /></td>
</tr>
<tr id='addr1'></tr>
</tbody>
</table>
这是我的桌子
CREATE TABLE `oppskrift` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`opp_navn` VARCHAR(255) NULL DEFAULT NULL,
`antall` VARCHAR(255) NULL DEFAULT NULL,
`holdbarhet` VARCHAR(50) NULL DEFAULT NULL,
`beskrivelse` TEXT NULL,
`allergen` VARCHAR(255) NULL DEFAULT NULL,
`varenavn` VARCHAR(255) NULL DEFAULT NULL,
`mengde` VARCHAR(255) NULL DEFAULT NULL,
`enhet` VARCHAR(255) NULL DEFAULT NULL,
`pris` VARCHAR(255) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=16
;
您的问题似乎是PHP只检查第一行的变量名。我要做的是用数组替换这个名称,这样我就可以遍历它并获得所有的行。接下来的可能不是最好的方法,但它是有效的:
<div class="table-responsive">
<table class="table table-bordered table-hover" id="tab_logic">
<thead>
<tr>
<th>#</th>
<th>Varenavn</th>
<th>Mengde</th>
<th>Enhet</th>
<th>Pris</th>
</tr>
</thead>
<tfoot>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td><a id="add_row" class="btn btn-success pull-right">Add Row</a><a id='delete_row' class="pull-right btn btn-danger">Delete Row</a></td>
</tr>
</tfoot>
<tbody>
<tr id='addr0'>
<td>1</td>
<td><input type="text" name='v_navn0' placeholder='Varenavn' class="form-control" /></td>
<td><input type="text" name='mengde[]' placeholder='Mengde' class="form-control" /></td>
<td><select name='enhet[]' placeholder='Enhet' class='form-control input-md'><option>KG</option><option>GR</option><option>L</option<option>DL</option></select></td>
<td><input type="text" name='pris[]' placeholder='Pris' class="form-control" /></td>
</tr>
<tr id='addr1'></tr>
</tbody>
</table>
像这样的。我还没有测试过它,但你明白了。看起来你已经有了一个
INSERT
语句来将数据保存到数据库中。到底是什么不起作用?它将只显示用户输入的第一行。当他们添加新行时不会。它们插入的值将不会上传到服务器。您仅通过$varenavn=($\u POST[“v\u navn0”])引用第一行代码>。您应该将它放在某种循环中,并作为$\u POST[“v\u navn0”]
,$\u POST[“v\u navn1”]
进行检查,直到达到空值。另外,您应该为每个迭代调用insert,但我不确定它们将放入多少行。如果我必须从0到1000,代码会很长,代码文件会很大。Thx,我会尝试一下,让你知道它是如何运行的!德尔卡诺,成功了,但没有。它插入正确,但只包含第一个插入值,现在它只显示第一个字母而不显示孔字。好的,添加一个print\r($\u POST);退出在PHP中编写>并告诉我结果=KG)[pris]=Array([0]=asdad[1]=sadsad[2]=sadasdas))对于示例,我刚刚添加了som值。在我的服务器中,它现在只显示为最后一个输入(数组[2]),而不是所有输入
CREATE TABLE `oppskrift` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`opp_navn` VARCHAR(255) NULL DEFAULT NULL,
`antall` VARCHAR(255) NULL DEFAULT NULL,
`holdbarhet` VARCHAR(50) NULL DEFAULT NULL,
`beskrivelse` TEXT NULL,
`allergen` VARCHAR(255) NULL DEFAULT NULL,
`varenavn` VARCHAR(255) NULL DEFAULT NULL,
`mengde` VARCHAR(255) NULL DEFAULT NULL,
`enhet` VARCHAR(255) NULL DEFAULT NULL,
`pris` VARCHAR(255) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=16
;
<div class="table-responsive">
<table class="table table-bordered table-hover" id="tab_logic">
<thead>
<tr>
<th>#</th>
<th>Varenavn</th>
<th>Mengde</th>
<th>Enhet</th>
<th>Pris</th>
</tr>
</thead>
<tfoot>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td><a id="add_row" class="btn btn-success pull-right">Add Row</a><a id='delete_row' class="pull-right btn btn-danger">Delete Row</a></td>
</tr>
</tfoot>
<tbody>
<tr id='addr0'>
<td>1</td>
<td><input type="text" name='v_navn0' placeholder='Varenavn' class="form-control" /></td>
<td><input type="text" name='mengde[]' placeholder='Mengde' class="form-control" /></td>
<td><select name='enhet[]' placeholder='Enhet' class='form-control input-md'><option>KG</option><option>GR</option><option>L</option<option>DL</option></select></td>
<td><input type="text" name='pris[]' placeholder='Pris' class="form-control" /></td>
</tr>
<tr id='addr1'></tr>
</tbody>
</table>
$(document).ready(function () {
var i = 1;
$("#add_row").click(function () {
$('#addr' + i).html("<td>" + (i + 1) + "</td><td><input name='v_navn[]' type='text' placeholder='Varenavn' class='form-control input-md' /> </td><td><input name='mengde[]' type='text' placeholder='Mengde' class='form-control input-md'></td><td><select name='enhet[]' placeholder='Enhet' class='form-control input-md'><option>KG</option><option>GR</option><option>L</option><option>DL</option></select></td</td></td><td><input name='pris[]' type='text' placeholder='Pris' class='form-control input-md' />");
$('#tab_logic').append('<tr id="addr' + (i + 1) + '"></tr>');
i++;
});
$("#delete_row").click(function () {
if (i > 1) {
$("#addr" + (i - 1)).html('');
i--;
}
});
});
// Create connection
$conn = new mysqli($servername, $username, $password, $db);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// definding names
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$navn = ($_POST["navn"]);
$antall = ($_POST["antall"]);
$holdbar = ($_POST["holdbar"]);
$fremgang = ($_POST["fremgang"]);
$allergen = ($_POST["allergen"]);
$varenavn = ($_POST["v_navn"]);
$mengde = ($_POST["mengde"]);
$enhet = ($_POST["enhet"]);
$pris = ($_POST["pris"])
}
// Query
foreach($varenavn as $i => $var) {
$sql = "INSERT INTO oppskrift (opp_navn, antall, holdbarhet, beskrivelse, allergen, varenavn, mengde, enhet, pris)
VALUES ('$navn', '$antall', '$holdbar', '$fremgang', '$allergen', '$varenavn[$i]', '$mengde[$i]', '$enhet[$i]', '$pris[$i]')";
if ($conn->query($sql) !== TRUE) {
echo "Something went wrong. Please try again later.";
}
}
// Redirect to login page
header("location: /bin/appdata/ny_opp.php");
$conn->close();
?>