【问题标题】:Html Form / php : select with option value = arrayHtml Form / php:选择选项值=数组
【发布时间】:2012-01-17 11:19:07
【问题描述】:

如何使用 php 数组作为 HTML <option> 的值?

例如

<select name='myname'>
  <option value=' array("font-family" => "font-family: 'Yeseva One', serif","font-name" => "Yeseva One","css-name" =>"Yeseva+One")'>
    Font 1
  </option>
  ...
</select>

【问题讨论】:

  • eeee...这甚至不是一个有效的 PHP,你知道吗?

标签: php html arrays forms select


【解决方案1】:

这取决于您最终要归档的内容。我有 3 个选项供您选择:

1) Json 非常灵活:

<option value="<?php json_encode($yourArray) ?>">Font 1</option

您可以稍后使用 json_decode 将 Json 转换回数组。

2) 如果您需要服务器客户端脚本的数据,使用 HTML5 的数据属性可能会更好:

<option value="value1" data-fontname="Yeseva One" data-cssname="Yeseva+One">Font 1</option>

3) 您可以使用隐藏的输入字段,这将允许您检索 $_POST['font1']['css_name'] 等值。 :

<input type="hidden" name="font1[font_name]" value="Yeseva One" />

你显然必须逃避你的价值观。但你明白了。

【讨论】:

    【解决方案2】:

    我认为对你来说最好的方法是用逗号分隔值,即

    <select name='myname'>
    <option value='Yeseva One, serif'</option>
    </select>
    

    在 php 中你可以将结果内爆到一个数组中

    $array_of_results = implode( $_POST['myname'] );
    

    【讨论】:

    • 我不确定它是否是我正在寻找的。我想在之后使用这样的值: $_POST['myname']['font-name']
    【解决方案3】:

    我想你可以serialize数组:

    <?php
    
    $arrYourArray = array(
    "font-family" => "font-family: 'Yeseva One', serif",
    "font-name" => "Yeseva One",
    "css-name" =>"Yeseva+One");
    
    ?>
    
    <select name="myname">
      <option value="<?php echo serialize($arrYourArray); ?> ">
        Font 1
      </option>
      ...
    </select>
    

    【讨论】:

      【解决方案4】:

      您是否尝试根据您在数组中设置的选项创建选择表单?

      如果是这样,你可以这样做:

      <select name="myname">
      
          <?php
      
          $selects = Array('Verdana' => 'font-family: Verdana;', '\'Trebuchet MS\', Helvetica, Arial, sans-serif' => 'font-family: \'Trebuchet MS\', Helvetica, Arial, sans-serif;');
      
          foreach($selects as $select => $css) {
      
              echo '<option value="' . $css . '">' . $select . '</option>';
      
          }
      
          ?>
      
      </select>
      

      【讨论】:

      • 不,例如:&lt;select&gt; &lt;option value=array( "x" =&gt; "123", "y" =&gt; "666", "z" =&gt;"987")&gt; &lt;/option&gt; &lt;option value=array( "x" =&gt; "344", "y" =&gt; "545", "z" =&gt;"543")&gt; &lt;/option&gt; &lt;/select&gt; 在 php 中,我想从我的值访问 [y]
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-16
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 2022-06-29
      • 2014-12-25
      • 2016-08-14
      相关资源
      最近更新 更多