我有以下代码。我的文本框参加了多次循环。我希望在我的表单发布时获得每个参加者的价值以在数据库中插入值。
<form method="post" action="insert.php">
<label>Subject</label>
<input type="text" maxlength="30" name="subject" />
<label>Total Lectures</label>
<input type="text" maxlength="30" name="total" />
<table width="537" border="1">
<tr>
<td width="90">Name</td>
<td width="139">Roll Number </td>
<td width="136"> </td>
<td width="144">Attendence</td>
</tr>
<?php
$query=mysql_query("SELECT * FROM STUDENT");
$i=0;
while($rec=mysql_fetch_array($query)){
$i++;
?>
<tr>
<td><?php echo $rec['name']; ?></td>
<td><?php echo $rec['roll_number']; ?></td>
<td> </td>
<td><input type="text" maxlength="10" name="atten" /></td>
</tr>
<?php } ?>
</table>
<input type="submit" value="submit" />
</form>
我的insert.php页面是
if($_SERVER['REQUEST_METHOD']=='POST'){
$query=mysql_query("SELECT * FROM STUDENT");
while($rec=mysql_fetch_array($query)){
$attend=$_POST['atten'];
$subject=$_POST['subject'];
$total=$_POST['total'];
$query1=mysql_query("INSERT INTO course VALUES('$i','$subject','$total','$attend','')") or die(mysql_error());
}
}
我只获得1个文本框值。
答案 0 :(得分:2)
问题是您有许多名称为atten
的输入。发布此表单时,只会转发其中一个值。
如果您将名称更改为atten[]
,则所有值都将作为数组发布,然后您必须循环以构建插入查询。
您可以按如下方式访问此发布的数组:
$attendee_array = $_POST['atten'];
foreach($attendee_array as $attendee) {
// perform insert or build insert query (prefereable as you can do all these inserts at once) here
// make sure to escape your data for input
}
答案 1 :(得分:0)
更改输入的名称:
<input name="subject[]" value="Lorem" />
<input name="total[]" value="ipsum" />
<input name="atten[]" value="dolor" />
Then:
$_POST['subject'][0] == 'Lorem'
$_POST['total'][4] == 'amet'
如果是这样的话,这将使我的生活变得容易十倍,因为我可以发送一次 通过表单无限量的信息并进行处理 由服务器简单地通过循环遍历项目数组 名称“主题”。等
答案 2 :(得分:0)
您需要使用输入数组,如:
<input type="text" maxlength="10" name="attend[]" />
然后,您将在attend
中获得array
的所有值,然后循环显示$_POST['attend']
。