动态编程-PHP:处理两端都有数字的多个文本框


dynamic programming - PHP: Process multiple textboxes with numbers at each end

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

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

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

文本框_T1
文本框_T2
文本框_T3
文本框_T4
etc

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

我该怎么做?

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

<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 />";    
   }
}

edit:如果不能更改名称,则可以迭代所有GEt值:

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

理想情况下,您应该让javascript添加要作为数组提交的文本区域:

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

(我假设你说的是文本区域(,因为一旦提交,你只需要在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
   }
}