尝试将变量值回显到输入类型名称

时间:2014-05-14 15:15:41

标签: php html forms

我想基于变量值创建动态名称。我使用一个变量$count,它最初保持0并递增,给每个输入类型一个不同的值。

可悲的是,在我提交表单后,我尝试访问那些不存在的变量。 变量应为$ 0,$ 1,$ 2等,具体取决于输入类型的数量。 在访问它们之前,我已经解压缩了POST数组。

while ($nrpyetjeve >0)
{
  $raport="SELECT * FROM $emrikategorise WHERE Id=$nrpyetjarandom";
  $result1=mysql_query($raport);
  $rrjeshti=mysql_fetch_assoc($result1);
  echo "<h3>- {$rrjeshti['Pyetja']}</h3><br/><br/>";
  echo "<ul><li>{$rrjeshti['Pgj1']}</li>";
  echo "<li>{$rrjeshti['Pgj2']}</li>";
  echo "<li>{$rrjeshti['Pgj3']}</li>";
  echo "<li>{$rrjeshti['Pgj4']}</li></ul>";
  echo "<br/><br/>";

这是问题

  echo "<input type=\"text\" size=\"15\" name='$count'/>";
  echo "<br/><br/>";
  array_push($zgjidhjet,$rrjeshti['Pgjsakt']);
  $nrpyetjeve=$nrpyetjeve-1;
  $nrpyetjarandom=rand(1,$nrrjeshta);
  $count=$count+1;
}

2 个答案:

答案 0 :(得分:2)

&#34;注册全局&#34;仅在$_POST等的数组键时才有效。是有效的变量名。

例如,如果您有<input name="foo-bar" />,则不能指望$foo-bar作为变量出现。相反,请使用$_POST['foo-bar']

在您的情况下,它会是$_POST['0']$_POST['1']等等。

一般来说,依靠&#34;注册全局数据&#34;是一个的想法。

答案 1 :(得分:1)

如果您使用register_globals或尝试extract()这些变量,则它们无效,因为PHP变量不能以数字(或数字)开头。您需要访问$_POST超全局。更好的方法是使用数组:

echo "<input type=\"text\" size=\"15\" name='text[$count]'/>";

然后以$_POST['text'][0]等方式进行访问。现在,您的所有文字输入都会在$_POST['text']下分组,您也可以将复选框等分组。然后你可以extract()这些(不推荐)。