【问题标题】:How Can I Pass Array Values through Form Submission?如何通过表单提交传递数组值?
【发布时间】:2011-07-27 20:08:45
【问题描述】:

我正在尝试通过表单提交传递一组值。举个例子:

example.com?value1=178&value2=345&value3=2356

简单的解决方案是让我执行以下操作以获取新页面上的值:

$value1=$_GET['value1'];
$value2=$_GET['value2'];
$value3=$_GET['value3'];

我遇到的困难是通过表单传递的“值”一词之后的变量会随着每次提交而改变。所以我修改了代码以传递为:

example.com?value14=178&variable=14&value23=345&variable=23&value63=2356&variable=63

正如您在此处看到的,我现在已将来自值的变量作为 GET 参数传递。然后我尝试将这些值单独显示在提交的页面上,如下所示:

$variable=$_GET['variable'];    
$value=$_GET['value'.$variable];

echo $value . '<br>';

这段代码几乎可以工作。我能够获得通过显示的最后一个数组。如何修复此代码以使所有传递的值显示在提交的页面上?

【问题讨论】:

    标签: php arrays forms get


    【解决方案1】:

    对表单字段使用 PHP 的数组表示法:

    val[]=178&val[]=14&val[]=345&etc...
    

    这将导致 $_GET['val'] 成为一个数组:

    $_GET = array(
       'val' => array(178, 14, 345, etc...)
    )
    

    如果你不能像这样重新排列 URL,你可以尝试使用 preg_grep:

    $matches = preg_grep('/^variable\d+$/', array_keys($_GET));
    

    哪个会返回:

    $matches= array('variable1', 'variable2', 'variable3', etc...);
    

    【讨论】:

      【解决方案2】:

      使用数组,例如像这样不需要变量 $variable。

      example.com?value[14]=178&value[23]=345&value[63]=2356
      
      foreach ($_GET['value'] as $key => value) {
          echo $key . " => " . $value . "<br/>";
      }
      

      编辑:获取值的另一种方法是循环整个 $_GET -array 并像这样从那里解析值(变量始终采用“值”后跟 X 数字的形式):

      example.com?value14=178&value23=345&value63=2356
      
      $values = array();
      foreach ($_GET as $key => $value) {
          if (preg_match('/^value[\d]+$/', $key)) {
              // remove "value" from the beginning of the key
              $key = str_replace('value', '', $key);
              // save result to array
              $values[$key] = $value;
          }
      }
      

      【讨论】:

        【解决方案3】:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-05-19
          • 1970-01-01
          • 2012-10-20
          • 1970-01-01
          • 2015-07-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多