【问题标题】:Breakline in Datalist HTML not workingDatalist HTML 中的断线不起作用
【发布时间】:2017-01-09 16:36:27
【问题描述】:
<input type="text" list="req" name="req" style="width:350px; height:70px;"><datalist id="req">
    <option value=""><option>
    <?php  while($getreq = $requirements->fetch_array()){ ?>
    <option><?=$req = preg_replace("/\r\n|\r|\n/",'<br/>',$getreq['req']);?></option>  
    <?php  } ?>
</datalist>

我从数据库中得到这个查询,有 50 行,有些行的文本有断线。但问题是当我检查数据列表时,断线不起作用。

例如:

No1 - 中心构件的可见断裂。2 - 中心构件分离。3 - 1 分钟内失去气压。

但在我的数据库中是这样的。

No
1 - 中心构件的可见断裂。
2 - 中心构件分离。
3 - 1 分钟内失去气压。

知道如何解决我的问题吗?

   Database
   ID     Req
   1      Bead Unseating Test Min. 9100 N
   2      Breaking Energy Test Min. 113 N.m. (J)
   3      No<br/>1 - Visible Fracture(s) of the center member.<br/>2 - The center member separates.<br/>3 - Loses air pressure in 1 minute.


  Must be Output in datalist or Select Option (Dropdown Menu)
  Bead Unseating Test Min. 9100 N
  Breaking Energy Test Min. 113 N.m. (J)
  No
  1 - Visible Fracture(s) of the center member.
  2 - The center member separates.
  3 - Loses air pressure in 1 minute.

【问题讨论】:

  • nl2br() ? php.net/manual/en/function.nl2br.php ...虽然不确定它是否会在 &lt;option&gt; 中有所帮助 - 从未在 &lt;datalist&gt; 中尝试过,但通常 no 允许在 &lt;option&gt; 标签内使用其他标记。
  • 它不起作用@CD001,所以我可以使用任何下拉列表来完成这项工作?
  • PHP 可能正在工作,查看源代码,但据我所知,您不能在 &lt;option&gt; 标签内放置任何其他标记,包括 &lt;br /&gt; 标签 - 所以这些标签可能是在源代码中,但他们什么也不做:stackoverflow.com/questions/3354979/…
  • ...我不知道这是否可行,但尝试将换行符保留原样,但将pre 样式应用于选项,例如&lt;option style="white-space: pre;"&gt;&lt;?= strip_tags($getreq['req']); ?&gt;&lt;/option&gt;
  • 是的,似乎
    在 Select Option 和 Datalist 中不起作用。我不知道如何使它工作。很遗憾

标签: php html sql


【解决方案1】:

您可能需要nl2br() 而不是preg_replace()

检查PHP.NET manual page Here

编辑的答案

&lt;option&gt; 不接受
所以如果你愿意

<select>

<option>1</option>

<option>2</option>

<option>2</option>

</select>

这里需要修改

<?
$optarray  = explode("<br>", $getreq);

foreach($optarray as $optval){ ?>
<option><?= echo $optval; ?></option>
<? } ?>

【讨论】:

  • 好的,这似乎是您在单个
  • 是的,数据列表和选择选项绕过
    ,它们都进入同一行。我一直在寻找,仍然找不到任何解决方案。
  • 不起作用,btw No1 - 中心构件的可见骨折。2 - 中心构件分离。3 - 1 分钟内失去气压。这仅在 1 行中
  • 你能告诉我你的数据是如何保存在数据库中的吗?还有你想要的最终输出?
  • 我的explode()做了小改动,你可以试试。在explode()之后,您将获得所有结果的数组,然后您可以使用foreach()循环来获得
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-03
  • 1970-01-01
  • 2016-08-26
  • 2012-11-02
  • 1970-01-01
相关资源
最近更新 更多