Html 表单/php:使用选项值=数组进行选择

发布于 2024-12-20 16:35:54 字数 325 浏览 0 评论 0原文

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

例如

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

How can I use a php array as the value of an HTML <option>?

e.g.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

就此别过 2024-12-27 16:35:54

这在某种程度上取决于您最终想要归档的内容。我为您提供了 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" />

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

It kind of depends on what you want to archive in the end. I've got 3 options for you:

1) Json is pretty flexible:

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

You can then later on convert Json back to an array with json_decode.

2) If you need the data for server client side scripting, it would probably be a better idea to use HTML5's data attributes:

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

3) You can use hidden input fields, which will allow you to retrieve the values like $_POST['font1']['css_name'] ect. :

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

You will obviously have to escape your values. But you get the idea.

风轻花落早 2024-12-27 16:35:54

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

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

,即在 php 中你可以将结果内爆到数组中

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

I think the best approach for you is to put the values with comma separation i.e

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

and in the php you can implode the result into an array

$array_of_results = implode( $_POST['myname'] );
沒落の蓅哖 2024-12-27 16:35:54

我认为你可以序列化数组:

<?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>

I think you can serialize the array:

<?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>
明明#如月 2024-12-27 16:35:54

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

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

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

Are you trying to create a select form based on the options you have set in your array?

If so, you could do this:

<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文