PHP:处理多个文本框,每端都有数字

时间:2014-04-29 22:16:53

标签: php dynamic-programming

我知道如何处理以下内容: <input type="text" name="Textbox_T[]" id="txBox1" />

但我有一个未知数量的方框(它们是通过javascript生成的,只有在我们提交后才知道),其名称如下:

<input type="text" name="Textbox_T1" id="txBox1" />

Textbox_T1
Textbox_T2
Textbox_T3
Textbox_T4

因为我做不到: $_GET['Textbox_T'.$i]

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以将文本框名称设置为数组:

<input type="text" name="textboxes[]" />
<input type="text" name="textboxes[]" />
<input type="text" name="textboxes[]" />
<input type="text" name="textboxes[]" />

然后在代码中

if (is_array($_GET["textboxes"])){
   foreach ($_GET["textboxes"] AS $value){
      echo $value." entered in a textbox.<br />";    
   }
}

编辑:如果您无法更改名称,则可以迭代ALL 得到值:

foreach ($_GET AS $key=>$value){
   if (strpos($key, "Textbox") === 0){
      echo $value." has been entered in textbox ".$key."<br />";
   }
}

答案 1 :(得分:1)

理想情况下,你有javascript添加textareas作为数组提交:

<textarea name="Textbox_T[]" ></textarea>

(我假设你正在谈论textareas),因为那样你只需要在PHP提交后循环遍历该项:

foreach($_GET['Textbox_T'] as $text){
   //... do something
}

但是,如果你坚持使用它,你可以循环遍历提交的_GET数组并尝试根据子字符串进行匹配:

$prefix = "Textbox_T";
foreach($_GET as $key=>$value){
   if (substr($key,0,strlen($prefix))==$prefix){
     //this is one of them! do something
   }
}