请问用php怎么遍历页面中表单的每个文本框?

happyamei 2005-11-13 07:59:18
如题,我想实现通过循环获取页面中每个文本框的值,他们的命名是有规则的,不仅是文本框,还有各种单选,多选按钮。我这里有asp的例子,但我不会改,还请各位高人帮帮忙,谢谢!!
for each element in request.form
for i=1 to request.form(element).count
if instr(element,"NO")<>0 then
id=mid(element,3,3)
result=request.form(element)(i)
sql="select * from exam_database where id="& clng(id)
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,2
if rs("type")="单选题" then
if result=rs("answer") then
score=score+cint(singleper)
end if
end if
if rs("type")="多选题" then
if instr(rs("answer"),result)<>0 then
score=score+cint(multiper)/4
j=j+1
answer=split(rs("answer"),",")
answercount=ubound(answer)+1
if answercount=j then
score=score+cint(multiper)*(1-j/4)
end if
else
score=score-cint(multiper)/4*(j)
end if
end if
if rs("type")="判断题" then
if rs("answer")=result then
score=score+cint(judgeper)
end if
end if
end if
next
next
...全文
256 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
LoveChina2008 2005-11-15
  • 打赏
  • 举报
回复
当然还有别的办法,如表单中的文本框也可命名为===== data<?=$i?> =======
当然,$i是循环变量,呵呵,接收处理我就不多说了
happyamei 2005-11-15
  • 打赏
  • 举报
回复
谢谢各位,在大家的帮助下,我自己解决了问题,我用到了两个函数,如下:
array_walk($HTTP_POST_VARS,'test_print');

function test_print ($item2, $key) //循环进行判断后加分
{
global $score;
$aa=substr($key,2);
//echo $aa."<br>".count($item2);
for($i=0;$i<count($item2);$i++)
{
$bb.=$item2[$i].",";
}
$bb=substr($bb,0,strlen($bb)-1);
//echo $bb;
$query="select * from exam_database where ID=".$aa;
$result=mysql_query($query);
if($result)
{
while($array=mysql_fetch_array($result))
{
if($array['Type']=='单选题')
{
if($array['Anwser']==$item2)
$score=$score+$array['Mark']; //add the score
}
elseif($array['Type']=='多选题')
{
//$cc=split(",",$array['Anwser']);
// echo $cc[0].$cc[1].$bb;
if(!strpos($array['Anwser'],$bb))
{
$score=$score+$array['Mark'];
}
}
elseif($array['Type']=='判断题')
{
if($array['Anwser']==$item2)
$score=$score+$array['Mark'];
}
else
{
if(!strpos($array['Anwser'],$item2))
$score=$score+$array['Mark'];
}
}
}
}
谢谢各位了,结帖。
LoveChina2008 2005-11-15
  • 打赏
  • 举报
回复
大家都那么麻烦做什么?如此做,表单中的文本框都命名为"data[]",然后再处理的页面中如此做:$data = $_POST['data'];
for($i=0;$i<count($data);$i++)
{
echo "----------------->".$data[$i];
}
看看,你的问题是不是完美地解决了啊!
xuzuning 2005-11-15
  • 打赏
  • 举报
回复
foreach($HTTP_POST_VALS as $key=>$value)
echo $key . ' = ' . $value . '<br>';
zalvsa 2005-11-15
  • 打赏
  • 举报
回复
echo $_REQUEST['元素名']
missago 2005-11-14
  • 打赏
  • 举报
回复
echo $HTTP_POST_VALS['NO79'];
看看能获得什么
happyamei 2005-11-14
  • 打赏
  • 举报
回复
Array ( [NO79] => A [NO75] => C [NO1] => C [NO86] => B [NO67] => [NO20] => [NO25] => [NO72] => [NO68] => [NO70] => [NO65] => [NO73] => [NO62] => [NO26] => [starttime] => 20:25:46 [endtime] => 22:25:46 [testtime] => 2 [mystarttime] => 20:25:46 [myendtime] => 22:25:46 [lefttime] => 1:59:54 [B3] => 我要交卷 )

这是我用print_r($HTTP_POST_VALS); 得到的结果,但我想要的是把它们每个都单独拿出来,不知道怎么实现
spacet 2005-11-14
  • 打赏
  • 举报
回复
还有print_r($_POST)返回的是什么值?
---------------------------------------
楼上的,就不能看看书册里面关于这个函数的介绍吗?

print_r
(PHP 4 , PHP 5)

print_r -- 打印关于变量的易于理解的信息。
描述
bool print_r ( mixed expression [, bool return])


注: 参数 return 是在 PHP 4.3.0 的时候加上的

print_r() 显示关于一个变量的易于理解的信息。如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。

记住,print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。



<pre>
<?php
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x','y','z'));
print_r ($a);
?>
</pre>



上边的代码将输出: <pre>
Array
(
[a] => apple
[b] => banana
[c] => Array
(
[0] => x
[1] => y
[2] => z
)
)
</pre>



如果想捕捉 print_r() 的输出,可使用 return 参数。若此参数设为 TRUE,print_r() 将不打印结果(此为默认动作),而是返回其输出。

例子 1. return 参数示例

<?php
$b = array ('m' => 'monkey', 'foo' => 'bar', 'x' => array ('x', 'y', 'z'));
$results = print_r ($b, true); //$results 包含了 print_r 的输出结果
?>



注: 如果想在 PHP 4.3.0 之前的版本中捕捉 print_r() 的输出,可使用输出控制函数。

注: 在 PHP 4.0.4 之前的版本中,如果给出的 array 或 object 包含了直接或间接指向自身的引用,print_r() 将永远继续下去。print_r($GLOBALS) 就是一个例子,因为 $GLOBALS 自身即是全局变量,其包含了指向自身的引用。
happyamei 2005-11-14
  • 打赏
  • 举报
回复
上面那个位高手,能否详细说来听,举个例子看看吧,还有print_r($_POST)返回的是什么值?
xuzuning 2005-11-14
  • 打赏
  • 举报
回复
php可没有那么复杂
提交后
print_r($_POST);
你就可以看到所有的数据的分布
至于做什么,怎么做。就由你自己定了
happyamei 2005-11-14
  • 打赏
  • 举报
回复
怎么没有人回答以下呢?求求各位了。

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧