2011-12-10 93 views
1

如何使用php数组作为HTML <option>的值?Html Form/php:select with option value = array

例如

<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> 
+0

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

回答

3

它种取决于你到底想要归档的东西。我已经得到了你3种选择:

1)JSON是非常灵活:

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

您可以再后来就转换回JSON与json_decode数组。

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

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

0

我认为你最好的办法是把用逗号分隔值即

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

,并在PHP中可以破灭的结果到一个数组

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

我不确定这是我寻找。我想要使​​用如下的值: $ _POST ['myname'] ['font-name'] – prestarocket

0

是你试图根据你在数组中设置的选项创建一个选择表单?

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

<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> 
+0

不,例如: '' 在PHP中,我想从我的值 – prestarocket

1

我想你可以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> 
+0

它为我的问题的最佳解决方案,THX访问[Y] – prestarocket