这是我的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)
?>
从您的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";