2008年9月13日 星期六

當有多個控制項時,要如何傳值?

如果今天有如下的一個Table:



<table border="0" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111" width="98%" id="AutoNumber11">
<tr>
<td width="100%"> </td>
<td width="100%"> </td>
</tr>
<?php
$i=1;
$r=mysql_query("select * from q$q_id");
while($row=mysql_fetch_object($r)){
?>
<tr>
<td width="100%" colspan="2" bgcolor="#E6E6FF"><div align="left"><font size="2"><?php echo $i.". ".$row->option_title; ?></font></div></td>
</tr>
<?php
switch($row->qtype){
case '0':
?>
<tr>
<?php
$temp=explode(",",$row->option_body);
for($j=0;$j<sizeof($temp)-1;$j++){
?>
<td width="100%" colspan="2">
<div align="left">
<input type="radio" value="<?php echo $j+1; ?>" name="q<?php echo $i; ?>[<?php echo $i; ?>]">
<?php echo $temp[$j]; ?></div></td>
</tr>
<?php
}
break;
case '1':
$temp=explode(",",$row->option_body);
for($j=0;$j<sizeof($temp)-1;$j++){
?>
<tr>
<td colspan="2"><label>
<div align="left">
<input name="q<?php echo $i; ?>[<?php echo $j+1; ?>]" type="checkbox" id="q<?php echo $i; ?>[<?php echo $j+1; ?>]" value="<?php echo $j+1; ?>">
<?php echo $temp[$j]; ?> </div>
</label></td>
</tr>
<?php
}
break;
case '2':
?>
<tr>
<td colspan="2"><label>

<div align="left">
<textarea name="q<?php echo $i; ?>[<?php echo $i; ?>]" cols="30" rows="6" id="q<?php echo $i; ?>[<?php echo $i; ?>]"></textarea>
</div>
</label></td>
</tr>
<?
break;
}
$i=$i+1;
}
?>

<tr>
<td width="100%" colspan="2"> </td>
</tr>
<tr>
<td width="100%" colspan="2" bgcolor="#99CCFF"> </td>
</tr>
<tr>
<td width="100%" colspan="2">
<p align="right"><font size="2"><a href="./?action=answer&q_id=<?php echo $q_id?>#top">TOP↑</a></font></td>
</tr>
</table>

當Submit後,由於是以Array來對Form的控制項命名,所以可以用Loop的方式來處理:

for($i=1;$i<=$_POST["qmax"];$i++){
$q=$_POST["q".$i];
for(reset($q);$k=key($q);next($q)){
echo "{$q[$k]}".",";
}
echo "<br>";
}

沒有留言: