我创建了一个多输入行,允许使用javascript添加和删除行。
以下是代码:
var field = 1;
function plan_fields() {
field++;
var objTo = document.getElementById('plan_fields')
var divtest = document.createElement("div");
divtest.setAttribute("class", "form-group removeclass" + field);
var rdiv = 'removeclass' + field;
divtest.innerHTML = '<div class="col-sm-4 nopadding"><div class="form-group"> <input type="text" class="form-control" id="plannumber" name="plannumber[' + field + ']" value="" placeholder="School name"></div></div><div class="col-sm-4 nopadding"><div class="form-group"> <input type="text" class="form-control" id="Degree" name="Degree[' + field + ']" value="" placeholder="Degree"></div></div><div class="col-sm-4 nopadding"><div class="form-group"><div class="input-group"> <select class="form-control" id="plandate" name="plandate[' + field + ']"><option value="">Date</option><option value="2015">2015</option><option value="2016">2016</option><option value="2017">2017</option><option value="2018">2018</option> </select><div class="input-group-btn"> <button class="btn btn-danger" type="button" onclick="remove_plan_fields(' + field + ');"> <span class="glyphicon glyphicon-minus" aria-hidden="true"></span> </button></div></div></div></div><div class="clear"></div>';
objTo.appendChild(divtest)
}
function remove_plan_fields(rid) {
$('.removeclass' + rid).remove();
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<form action="?create" method="post">
<div class="panel-body">
<div id="plan_fields">
</div>
<div class="col-sm-4 nopadding">
<div class="form-group">
<input type="text" class="form-control" id="plannumber" name="plannumber[0]" value="" placeholder="Plan Number">
</div>
</div>
<div class="col-sm-4 nopadding">
<div class="form-group">
<input type="text" class="form-control" id="context" name="context[0]" value="" placeholder="Context represented on plan">
</div>
</div>
<div class="col-sm-4 nopadding">
<div class="form-group">
<div class="input-group">
<select class="form-control" id="plandate" name="plandate">
<option value="">Date Completed</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
</select>
<div class="input-group-btn">
<button class="btn btn-success" type="button" onclick="plan_fields();"> <span class="glyphicon glyphicon-plus" aria-hidden="true"></span> </button>
</div>
</div>
</div>
</div>
<div class="clear"></div>
</div>
<div class="form-group">
<div class="col-md-9 col-sm-9 col-xs-12 col-md-offset-3">
<button type="submit" value="submit" class="btn btn-success">Add Plan</button>
</div>
</div>
</form>
&#13;
现在,我想添加多个数组的记录,但我被困在这里,所以如何修复我的php部分?
<?php
$host = "localhost";
$username = "root";
$password = "";
$dbname = "project";
if (isset($_GET['create'])) {
$link = mysqli_connect($host, $username, $password, $dbname)
or die('Could not connect: ' . mysqli_error());
mysqli_select_db($link, $dbname)
or die('Could not select database');
foreach($_POST as $key => $value)
{
if (strstr($key, ''))
{
$x = str_replace('',NULL,$key);
inserttag($value, $x);
}
}
$plannumber= $_POST['plannumber[]'];
$plan = $_POST['context[]'];
$date = $_POST['plandate[]'];
$query = "INSERT INTO plans
VALUES ($plannumber,'$date','$plan')";
$result = mysqli_query($link, $query) or die('Could not connect: ');
$message = "Plan Added";
echo "<script type='text/javascript'>alert('$message');window.location.href = 'plans.php';</script>";
}
?>
答案 0 :(得分:0)
如果要在表中存储数组,则可以使用serialize($array)
函数(将$ array替换为数组变量名)。它将返回序列化数据,然后您可以存储该序列化数组,我强烈建议您准备好语句。你的代码非常不安全。
答案 1 :(得分:0)
首先你需要一个包含数组值的变量,然后数组值内嵌一个空格分隔符,implode separator值是一个字符串。然后你可以插入分隔符值。喜欢这个
$plannumber= $_POST['plannumber[]'];
$plannumber_separated = implode(" ", $plannumber);
$plan= $_POST['context[]'];
$plan_separated = implode(" ", $plan);
$query = "INSERT INTO plansVALUES ($plannumber_separated,$plan_separated)";