PHP oop将动态数组结果从页面传输到类页面
我正在做登记表。这是注册的第二阶段 在第一阶段,用户输入其个人数据 第二阶段表单包含一个select输入,用于从数据库的表中检索值 我用JS编写了一个脚本,这样用户就可以选择任意多的值。我编写PHP代码的方式是将表单的结果形成一个数组 我的问题是:PHP oop将动态数组结果从页面传输到类页面,php,mysql,arrays,Php,Mysql,Arrays,我正在做登记表。这是注册的第二阶段 在第一阶段,用户输入其个人数据 第二阶段表单包含一个select输入,用于从数据库的表中检索值 我用JS编写了一个脚本,这样用户就可以选择任意多的值。我编写PHP代码的方式是将表单的结果形成一个数组 我的问题是: 我想将数据插入MySQL数据库。表格结构如下所示: id | userid | projectd 如何将数组结果传输到类? 如果我print_r['project']在选择3个选择输入后,它们的名称是1、14和49,我将收到下一个输出数组([0]=>
print_r['project']
在选择3个选择输入后,它们的名称是1、14和49,我将收到下一个输出数组([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>
o、 我的问题是如何将$_POST['project']的数组输出添加到用户类的方法中 我不知道的是,您可以在调用某个方法时向该方法发送$\u 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"]);
正如您所看到的,顶部框代码最后一行的$_POST['projects']将$projectd组合在表方法中,并将其值发送给它。我不确定我是否理解您试图实现的目标,但1)我没有看到任何带有
名称
projectid的输入,如果这是从选择框中输入的,您应该执行$\u POST['project']
如果需要选择多个元素,则应具有multiple=true
。2) 您的foreach
每次都会覆盖$query
变量,您可能希望将try
块放入foreach
中,但在foreach
结束后返回
。
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;
}
}
$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;
}
}
}