Форма HTML / php: выберите со значением параметра = массив - PullRequest
1 голос
/ 10 декабря 2011

Как я могу использовать массив 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>

Ответы [ 4 ]

4 голосов
/ 10 декабря 2011

Это зависит от того, что вы хотите архивировать в конце. У меня есть 3 варианта для вас:

1) Джсон довольно гибок:

<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'] ect. :

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

Вам, очевидно, придется сбежать от своих ценностей. Но вы поняли.

1 голос
/ 10 декабря 2011

Я думаю, вы можете сериализовать массив:

<?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 голосов
/ 10 декабря 2011

Вы пытаетесь создать форму выбора на основе параметров, установленных в вашем массиве?

Если это так, вы можете сделать это:

<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 голосов
/ 10 декабря 2011

Я думаю, что лучший подход для вас - это ставить значения через запятую, т.е.

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

и в php вы можете выложить результат в массив

$array_of_results = implode( $_POST['myname'] );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...