这是我的index.php
文件,它有一个简单的表单,但是使用jscript我会动态添加更多输入,然后我需要将这些输入插入到我的数据库中。
<form action="insert.php" method="post">
<input type="text" name="uid" placeholder="uid">
<input type="text" name="cid_1" placeholder="cid1">
<input type="text" name="cid_2" placeholder="cid2">
<input type="submit" value="Register" name="submit" />
</form>
我已创建insert.php
,如下所示。我只需要输入每个输入,但实际输入将按照我的说法动态添加,所以我只需要应用while或foreach函数我猜但我不确定该怎么做,希望有人可以帮助我这个
我需要的另一件事,在这种情况下一切正常,但即使某些输入为空,它也会每次都插入。我也找不到任何相关的东西。
感谢您的帮助。
<?php
$link = mysqli_connect("localhost", "root", "", "test");
$uid = mysqli_real_escape_string($link, $_POST['uid']);
$cid1 = mysqli_real_escape_string($link, $_POST['cid_1']);
$cid2 = mysqli_real_escape_string($link, $_POST['cid_2']);
$sql = "INSERT INTO table (uid, cid) VALUES ('$uid', '$cid1'), ('$uid', '$cid2')";
mysqli_query($link, $sql)
?>
答案 0 :(得分:2)
从您的SQL查询中我了解到,在uid下,您将从输入中存储动态“cid”值。所以你要为“cid”添加动态输入字段。
为了捕获服务器上的动态字段,您必须将下面给出的输入字段命名为将在服务器上作为数组发布。
<input type="text" name="cid[]" placeholder="cid1">
接下来,您将遍历该数组并将每个输入数据保存在表中。
完整代码:
HTML
<form action="insert.php" method="post">
<input type="text" name="uid" placeholder="uid">
<input type="text" name="cid[]" placeholder="cid1">
<input type="text" name="cid[]" placeholder="cid2">
<input type="submit" value="Register" name="submit" />
PHP
$mysqli = new mysqli('localhost','usename','password','table');
$uid = $mysqli->real_escape_string($_POST['uid']);
if($uid !== ''){
if(isset($_POST["cid"]) && is_array($_POST["cid"])){
foreach ($_POST["cid"] as $key => $value) {
$value = $mysqli->real_escape_string($value);
if($value !== ''){
// insert into table
$insert_row = $mysqli->query("INSERT INTO test ( uid, cid ) VALUES( '$uid', '$value' )");
}
else{
echo ($key+1)." no cid field is empty";
break;
}
}
}
}
else
echo "uid is empty";