我需要在相同的id上将动态文本框值插入到数据库表中,现在我可以只在不同的用户ID上插入值。
当我尝试将动态文本框值插入到id 1的数据库表中时,动态文本框值会转到不同的id,如2,3,4等等。并且还会变为id为1的零字段值。{ {3}}
这是我的html和javascript代码:
文件名:index.php
<!DOCTYPE html>
<html>
<head>
<SCRIPT src="http://code.jquery.com/jquery-2.1.1.js"></SCRIPT>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 5px;
}
table{
background-image: #eee;
}
</style>
</head>
<body>
<form name="registration" id="regis" method="post" enctype="multipart/formdata">
<table>
<th colspan="1">
<th>Details Mahall members</th>
</th>
<tr>
<td>Name of the person:</td>
<td>
<input type="text" name="first_name1" id="fname1" placeholder="Enter name" value=""/>
</td>
</tr>
<tr>
<td>Name of the father:</td>
<td>
<input type="text" name="first_name2" id="fname2" placeholder="Enter name" value=""/>
</td>
</tr>
<tr>
<td>Name of the mother:</td>
<td>
<input type="text" name="first_name3" id="fname3" placeholder="Enter name" value=""/>
</td>
</tr>
<tr>
<td>Details of family members:</td><td></td>
</tr>
<tr>
<td></td>
<td>
<table width="100%">
<tr>
<th><center>No:</center></th><th><center>Name</center></th><th><center>Age</center></th><th><center>Relation<strong></th><th><center>Occupation<strong></th>
</tr>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
<DIV id="product">
<DIV class="product-item float-clear" style="clear:both;">
<?php require_once("sub.php") ?>
</DIV>
</DIV></td></tr>
<tr><td></td><td> <DIV class="btn-action float-clear">
<input type="button" name="add_item" value="Add More" onClick="addMore();" />
<input type="button" name="del_item" value="Delete" onClick="deleteRow();" />
<span class="success"><?php if(isset($message)) { echo $message; }?></span>
</DIV>
</td>
</tr>
<tr>
<td>
<input type="submit" name="save" value="Submit"/>
<input type="reset" value="cancel"/>
</td><td></td>
</tr>
</table>
</form>
<SCRIPT>
function addMore() {
$("<DIV>").load("sub.php", function() {
$("#product").append($(this).html());
});
}
function deleteRow() {
$('DIV.product-item').each(function(index, item){
jQuery(':checkbox', this).each(function () {
if ($(this).is(':checked')) {
$(item).remove();
}
});
});
}
</SCRIPT>
</body>
</html>
文件名:sub.php
<DIV class="product-item float-clear" style="clear:both;">
<DIV class="float-left"><input type="checkbox" name="item_index[]" /></DIV>
<table cellspacing="2">
<tr>
<td><DIV class="float-left"><input type="text" name="name1[]" style="width:60px"/></DIV></td>
<td><DIV class="float-left"><input type="text" name="name2[]" style="width:90px"/></DIV></td>
<td><DIV class="float-left"><input type="text" name="name3[]" style="width:62px"/></DIV></td>
<td><DIV class="float-left"><input type="text" name="name4[]" style="width:130px"/></DIV></td>
<td><DIV class="float-left"><input type="text" name="name5[]" style="width:178px"/></DIV></td>
</DIV>
</tr>
</table>
这是我的用于插入数据库的PHP代码
<?php
$username="root";
$password="sha12345";
$hostname="localhost";
$dbhandle = mysql_connect($hostname,$username,$password) or die("Could not connect to database");
$select = mysql_select_db("sha", $dbhandle);
if(isset($_POST['save']))
{
$personname = $_POST['first_name1'];
$fathername = $_POST['first_name2'];
$mothernname = $_POST['first_name3'];
mysql_query("INSERT INTO sha(Name_person,Name_father,Name_mother) VALUES ('$personname','$fathername','$mothernname')");
if(!empty($_POST["save"])) {
$itemCount = count($_POST["name1"]);
$itemValues=0;
$query = "INSERT INTO sha (no_members,name_members,age_members,relation_members,occupation_members) VALUES ";
$queryValue = "";
for($i=0;$i<$itemCount;$i++) {
if(!empty($_POST["name1"][$i]) || !empty($_POST["name2"][$i]) || !empty($_POST["name3"][$i]) || !empty($_POST["name4"][$i]) || !empty($_POST["name5"][$i])) {
$itemValues++;
if($queryValue!="") {
$queryValue .= ",";
}
$queryValue .= "('" . $_POST["name1"][$i] . "', '" . $_POST["name2"][$i] . "', '" . $_POST["name3"][$i] . "', '" . $_POST["name4"][$i] . "', '" . $_POST["name5"][$i] . "')";
}
}
$sql = $query.$queryValue;
if($itemValues!=0) {
$result = mysql_query($sql);
if(!empty($result)) $message = "Added Successfully.";
}
}
}
mysql_close();
?>
答案 0 :(得分:1)
您可以在HTML中使用name="first_name[]"
<input type="text" name="first_name[]" id="fname1" placeholder="Enter name" value=""/>
<input type="text" name="first_name[]" id="fname2" placeholder="Enter name" value=""/>
<input type="text" name="first_name[]" id="fname3" placeholder="Enter name" value=""/>
然后在php中获取时,你可以写
print_r($_POST['first_name']);
这将包含数组
中的所有值答案 1 :(得分:0)
好的,以下是您可以遵循的步骤
创建表格用户
CREATE TABLE users(
id INT NOT NULL AUTO_INCREMENT,
Name_person VARCHAR(50) NOT NULL,
Name_father VARCHAR(50) NOT NULL,
Name_mother VARCHAR(50) NOT NULL,
PRIMARY KEY ( id )
);
创建表family_members
CREATE TABLE family_members(
id INT NOT NULL AUTO_INCREMENT,
user_id INT NOT NULL,
no_members TINYINT(2) NOT NULL DEFAULT 1,
name_members VARCHAR(50) NOT NULL,
age_members VARCHAR(50) NOT NULL,
relation_members VARCHAR(50) NOT NULL,
occupation_members VARCHAR(100) NOT NULL,
PRIMARY KEY ( id )
);
然后在您的PHP代码中
mysql_query("INSERT INTO users(Name_person,Name_father,Name_mother) VALUES ('$personname','$fathername','$mothernname')");
$user_id = mysql_insert_id();
$query = "INSERT INTO family_members (user_id,no_members,name_members,age_members,relation_members,occupation_members) VALUES ";
$queryValue = "";
for($i=0;$i<$itemCount;$i++) {
if(!empty($_POST["name1"][$i]) || !empty($_POST["name2"][$i]) || !empty($_POST["name3"][$i]) || !empty($_POST["name4"][$i]) || !empty($_POST["name5"][$i])) {
$itemValues++;
if($queryValue!="") {
$queryValue .= ",";
}
$queryValue .= "('".$user_id. "', '" . $_POST["name1"][$i] . "', '" . $_POST["name2"][$i] . "', '" . $_POST["name3"][$i] . "', '" . $_POST["name4"][$i] . "', '" . $_POST["name5"][$i] . "')";
}
}
$sql = $query.$queryValue;
此外,您可以轻松获取JOIN记录或只是
假设你想获得用户1的记录
$get_user = mysql_query("SELECT * FROM users WHERE id = 1");
$user = mysql_fetch_assoc($get_user);
$user_id = $user['user_id'];
echo '<table>';
echo '<tr><th colspan="5">Recod of User '.$user['Name_person'].'</th></tr>';
$get_user_family = mysql_query("SELECT * FROM family_members WHERE user_id = '$user_id'");
while ($family = mysql_fetch_assoc($get_user_family))
{
echo"<tr><td>".$family['no_members']."</td><td>".$family['name_members']."</td><td>".$family['age_members']."</td><td>".$family['relation_members']."</td><td>".$family['occupation_members']."</td></tr>";
}
echo '<table>';