【问题标题】:Loop Multiple Form Input Name to an Array将多个表单输入名称循环到数组
【发布时间】:2013-06-23 14:58:15
【问题描述】:

我有一个这样的表格:

</span><select data-role=slider name="ndata[0]" /><option value=0> E </option><option value=1> F </option></select>
  <span>1b: </span><select data-role=slider name="ndata[1]" /><option value=0> E </option><option value=1> F </option></select>
  <span>1c: </span><select data-role=slider name="ndata[2]" /><option value=0> E </option><option value=1> F </option></select>

然后,我想将每个数据插入到 php 文件中的循环过程中。这是我的脚本:

<?php
foreach( $_GET['ndata'] as $ch => $data ) {
    $flag = 0;
       if($data[$flag] == 0){
          echo "<li><a href=\"img2.php\" target=\"blank\">Sektor ".($flag + 1)."</a></li>\n";}
    $flag++;}
?>

我已经尝试过了,但出现了一些错误。你有什么想法吗?

【问题讨论】:

  • 既然循环接受:foreach ($array as $key =&gt; $value) 不应该是if($ch[$flag] == 0) 吗?
  • 您想让我们猜猜您遇到了什么错误吗?

标签: php html forms for-loop foreach


【解决方案1】:

我假设,如果选择了“E”,您想打印类似的内容。

Sektor 1
Sektor 2

如果是这样,您应该使用此代码段:

foreach( $_GET['ndata'] as $key => $value ) {
   if($value == 0) {
       echo "<li><a href=\"img2.php\" target=\"blank\">Sektor ".($key + 1)."</a></li>\n";
   }
}

因为,$_GET['ndata'] 会返回这样的数组:

array(3) { 
           [0]=> string(1) "0"
           [1]=> string(1) "1" 
           [2]=> string(1) "0" 
         }

所以上面的代码段可以帮助您通过查看$value 来打印正确的扇区号 ($key + 1)。

如果不是这样,你能把你遇到的错误详细写出来吗?

【讨论】:

  • 是的,这就是我想要的。但我已经尝试过你的建议,但出现“未定义”错误。
  • 你能粘贴整个错误吗?这样我们可以更好地理解问题
  • 我在 jquery mobile 上使用它。如果我运行该脚本,错误消息是“未定义”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-06
  • 2012-04-25
  • 2013-01-31
  • 2021-10-12
  • 1970-01-01
  • 2015-12-25
  • 1970-01-01
相关资源
最近更新 更多