我想在post方法中使用变量而不是名称。我已经尝试过这段代码,但我能做什么似乎不正确,这是我的PHP代码
<?php
$answer="";
for($i=0 ; $i<2 ; $i++){
if(isset($_POST['{$i}'])){
$answer.=$_POST['{$i}'].",";
}
else{$answer.="0,";}
}
echo $answer;
?>
这是我的表格:
<form method="post" action="data.php">
<lable for="1" >1</lable>
<input type="radio" name="1" value="1"/>
<input type="radio" name="1" value="2"/>
<input type="radio" name="1" value="3"/>
<input type="radio" name="1" value="4"/><br/>
<lable for="2" >2</lable>
<input type="radio" name="2" value="1"/>
<input type="radio" name="2" value="2"/>
<input type="radio" name="2" value="3"/>
<input type="radio" name="2" value="4"/>
<input type="submit" name="submit" value="submit" />
您不需要像那样包装变量名,只需直接访问即可。它是一个数组,这意味着它支持键的概念。
(不过,我不能100%确定使用整数键是个好主意。你可能想在它们前面加一个文本值,以防止出现奇怪的错误)
$_POST[ $i ]
您可以在html:中使用类似这样的文本前缀动态构建它们
<input type="radio" name="radio_1" value="1" />
然后在PHP中这样访问它们:
$_POST['radio_' . $i];
你的for循环应该看起来像这个
for($i=1; $i<=2; $i++)
POST值应通过进行检查
$_POST[$i]
foreach循环在这种情况下会更好:例如:
$answer="";
foreach($_POST as $key => $value){
$answer.= $value.",";
}
echo (!!$answer?$answer:'0,');