我正在办理登记表。这是注册的第二阶段。
在第一阶段,用户输入他们的个人数据。
第二阶段表单包含一个select输入,用于从db中的表中检索值。
我用JS编写了一个脚本,这样用户就可以根据自己的意愿选择尽可能多的值。我以这样的方式编写PHP代码,即表单的结果将形成一个数组。
我的问题是:
id | userid |专案编号
1 1 54 2 1 39 3 1 92
print_r['project']
选择了3个选择输入,其名称为1,14和49,我会收到下一个输出Array ( [0] => 1 [1] => 14 [2] => 49 ) 1
,这很棒!虽然我不明白最后的1
来自哪里任何帮助都会很棒。
我写了即将到来的代码:
<?php
if(isset($_POST['regproj'])){
$sid = $_SESSION['id'];
echo $sid;
$_POST['project'];
$projects = $_POST['project'];
foreach ($projects as $project) {
echo $project['name'].'<br />';
}
$regprog = new User();
echo $regprog->Projects($sid);
echo var_dump($sql);
//foreach ( $test as $key=>$value ) {
//$query = "INSERT INTO users-project (userid, project) VALUES ('$value')" ;
//echo $query;
?>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript">
jQuery(function($){
var $project = $('#project1'), count = 1;
$('#addproject').click(function(e){
e.preventDefault();
var idname = 'project' + (++count);
var aname = 'project[]'
var classname ='form-control';
$project.parent().append($project.clone().attr({id: idname, name: aname, class: classname}));
});
});
</script>
<style type="text/css">
#projects input {
display: block;
}
</style>
</head>
<body>
<form role="form" name="regproj" action="" method="POST" onsubmit="return(validate());">
<fieldset>
<?php echo $_SESSION['id']; ?>
<div id="projects">
<select type="text" id="project1" name="project[]" class="form-control">
<?php
$Project = new User();
echo $Project->projectname();
?>
</select>
</div>
</div>
<input type='button' value='add another research' class="btn btn-info" id='addproject'>
<input type="submit" name="regproj" value="finished" class="btn btn-lg btn-success btn-block" />
</fieldset>
</form>
</body>
</html>
这是我写的课程:
public function Projects ($sid){
foreach ( $_POST['projectid'] as $key=>$value ) {
$query = "INSERT INTO users-project (userid, projectid) VALUES ('$sid', '$value')" ;
}
echo var_dump($query);
try {
$query = $this->dbh->prepare($query);
return $query->execute();
} catch(PDOException $e) {
return $e;
}
}
答案 0 :(得分:0)
o.k,我的问题是如何将$ _POST [&#39; project&#39;]的数组输出添加到用户类的方法中。
我不知道的是,您可以在调用方法时向方法发送$ _POST值
正如您将在下一个例子中看到的那样
$projects = $_POST['project'];
foreach ($projects as $project){
echo $project['name'].'<br />';
}
$data_count = count($_POST['project']);
for ($i=0; $i<$data_count; $i++) {
$projectid = $_POST['project'][$i];
}
$regprog = new User();
echo $regprog-> InsertProjects($sid, $_POST["project"]);
`
public function InsertProjects ($sid, $projectid){
foreach ($projectid as $value) {
$sql = "INSERT INTO usersproject (userid, projectid) VALUES ($sid, $value)" ;
try {
$query = $this->dbh->prepare($sql);
$query->execute();
} catch(PDOException $e) {
return $e;
}
}
}
正如您可以看到顶部框代码最后一行的$ _POST [&#39; projects&#39;]在Table方法中结合$ projectid并将其值发送给它。