试图请求数组变量

时间:2015-04-21 03:16:06

标签: php html arrays forms html-input

我有一个表单,我使用几个变量类似于一个数组,并在我的一个服务器(godaddy)上我不必请求变量,它工作正常。我不得不很快更换服务器,我需要一个解决方法,以便我可以请求这些变量

我有12个输入区域,如

<input name="sd[1]" type="text" id="sd1" size='10' value='<?echo$sd[1];?>'/>
<input name="sd[2]" type="text" id="sd2" size='10' value='<?echo$sd[2];?>'/>
...
<input name="sd[12]" type="text" id="sd12" size='10' value='<?echo$sd[12];?>'/>

我需要能够请求每个sd [#]变量,但我尝试过的所有内容都不起作用。

我尝试过像

这样的事情
for ($i=1; $i<=12; $i++){
$sd[$i]= $_POST['sd']["$i"];
}

for ($i=1; $i<=12; $i++){
$sd[$i]= $_POST['sd[$i]'];
}

$sd[1]= $_POST['sd[1]'];

感谢您提供的任何帮助 谢谢,
凯利

4 个答案:

答案 0 :(得分:2)

分组名称name="sd[]"已经返回一个数组,即[]内的数字作为索引。像往常一样对待阵列。

foreach非常适合这项任务:

$sd = $_POST['sd'];
foreach($sd as $key => $value) {
    // $key is integer inside name[1] or name[2], and so on
    echo $key;
    echo $value;
}

实际上,带有另一个赋值的循环是多余的,因为这个数组已经代表了你想要的东西。

$sd = $_POST['sd']; // contains the key pair values 1 => the corresponding echoed value from the form, and so on... 
echo $sd[12];

答案 1 :(得分:0)

使用此示例:

<?php

if(isset($_POST['sd'])) {
  for($i = 1; $i <= count($_POST['sd']); $i++) {
      echo $_POST['sd'][$i] . "<br>";
  }   
}   


?>

<form action='' method='POST'>
<input name="sd[1]" type="text" id="sd1" size='10' value='1'/>
<input name="sd[2]" type="text" id="sd1" size='10' value='2'/>
<input name="sd[3]" type="text" id="sd1" size='10' value='3'/>
<input type=submit value='Send'>
</form>

或者您可以使用此代码,在您的html代码中,您可以设置输入名称,例如name="sd[]",在这种情况下,第一个元素是0,请参阅代码:

<?php

if(isset($_POST['sd'])) {
  for($i = 0; $i < count($_POST['sd']); $i++) {
      echo $_POST['sd'][$i] . "<br>";
  }   
}   


?>

<form action='' method='POST'>
<input name="sd[]" type="text" id="sd1" size='10' value='1'/>
<input name="sd[]" type="text" id="sd1" size='10' value='2'/>
<input name="sd[]" type="text" id="sd1" size='10' value='3'/>
<input type=submit value='Send'>
</form>

输出:

1
2
3

答案 2 :(得分:0)

删除&#34; $ i&#34;周围的双引号。

for ($i=1; $i<=12; $i++){
   $sd[$i]= $_POST['sd'][$i];
}

答案 3 :(得分:0)

首先,您不应该为PHP使用短标签。

<? is bad, <?php is good. 

默认情况下,大多数主机都会关闭短标签选项。

其次,您应该可以访问这样的值。

$sd[1]= $_POST['sd'][1];
如果你需要循环

,或者甚至喜欢这个
foreach($_POST['sd'] as $key => $value){
    // $key is the number: 1-12
    // $value is what is held in it. ex sd[1]
}