【问题标题】:HTML form submit to PHP script with associative arrayHTML表单提交到带有关联数组的PHP脚本
【发布时间】:2014-01-29 07:11:25
【问题描述】:

我正在制作一个 HTML 表单。我希望结果出现在另一个页面的 PHP 脚本中。

这是我的表格:

echo '<form name="form1" action="page2.php" method="post">';
echo '<SELECT name="choice">';
foreach ($array as $key => $value)
echo '<OPTION VALUE="'.$value.'" name="'.$value.'">'.$key.'</OPTION>';

现在,在我的 page2.php 上,我想使用“post”方法同时检索 $key 和 $value,我一一尝试了这 3 个解决方案,但都失败了:

echo $_POST["choice"]; //nothing
echo $_POST[$key];     //nothing
echo $_POST[$value];   //nothing

有什么问题?

【问题讨论】:

    标签: php html forms post


    【解决方案1】:

    您可以在选项的值中使用分隔符,如下所示:

    echo '<form name="form1" action="page2.php" method="post">';
    echo '<SELECT name="choice">';
    foreach ($array as $key => $value)
    echo '<OPTION VALUE="'.$key.'|'.$value.'" >'.$value.'</OPTION>'; 
    

    然后,在发布时,以这种方式检索它:

    $expldedArray = explode("|", $_POST["choice"]);
    $key = $expldedArray[0];
    $value = $expldedArray[1];
    

    【讨论】:

      【解决方案2】:

      您不需要为选择字段中的选项命名。只需为选择标签命名,如下所示:

      echo '<form name="form1" action="page2.php" method="post">';
      echo '<SELECT name="choice">';
      foreach ($array as $key => $value)
             echo '<OPTION VALUE="'.$value.'">'.$key.'</OPTION>';
      

      然后在你的php代码中选择一个值并提交表单:

      echo $_POST['choice']
      

      会给你选择的值。

      【讨论】:

        【解决方案3】:
        foreach($_POST as $key => $value) {
        
             echo ucfirst($key); echo " = "; 
             if(is_array($value))
                  echo implode(",", $value);
             else
                  echo $value; 
        
             echo '<br />';
        }
        

        ucfirst() 将字符串的第一个字母大写。 implode() 将使用给定字符串粘合数组元素

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-12-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多