在联系表单数组中使用Em Dashes

时间:2016-01-20 14:51:15

标签: javascript php em hyphen

新手web开发人员。我正在为我的网站建立一个联系订单表格,我正在使用的字段使用单选按钮为用户提供X和Y之间的选项。如果我使用em破折号,它将显示就好了事物的视觉方面,但不管我是否使用破折号字符表中的选项值,如果有任何错误,它将不会保留值。请允许我解释一下。

<div class="fieldwrap">
  <div class="formlabel">
    <p>Color Options<span style="color:red">*</span></p>
  </div>
  <label>
   <input type="radio" value="As shown—without logo" name="color"
   <?php  if ($fields['Color']=='As shown—without logo') echo 'checked="checked"' ; ?>>
   As shown&#8212;without logo
  </label><br>
  <label>
    <input type="radio" value="As shown—with logo" name="color" 
    <?php if ($fields['Color']=='As shown—with logo') echo 'checked ="checked"' ; ?>>
    As shown&#8212;with logo</label>
</div>

所以我试图确保在表单返回错误的情况下检查选项,通常是由于表单验证或用户输入不正确。

现在,这在Chrome和Internet Explorer中运行正常,但Firefox不会检查这些值。我99%肯定这与我的charset属性有关,我的属性设置为:

<meta charset="UTF-8">

我需要做些什么才能让它在所有浏览器中都能很好地发挥作用?

谢谢!

编辑:这是我在Firefox中运行var_dump($_REQUEST);时得到的结果。

array(15){[“requiredinput”] =&gt; string(0)“”[“productname”] =&gt; string(18)“Christmas Tree Box”[“quantity”] =&gt; string(2)“12”[“size”] =&gt; string(24)“3.75”x 2.1875“x 3.625”“[”color“] =&gt; string(12)”没有徽标“[”coat“] =&gt; string(4)”None“[”duedate“] =&gt; string(0)“”[“jobname”] =&gt; string(0)“”[“comments”] =&gt; string(0)“”[“name”] =&gt; string(0)“ “[”company“] =&gt; string(0)”“[”phone“] =&gt; string(0)”“[”fax“] =&gt; string(0)”“[”email“] =&gt ; string(0)“”[“PHPSESSID”] =&gt; string(32)“003cb8367fd4f8dac28e9efaae8d03b4”}

2 个答案:

答案 0 :(得分:1)

避免使用“用户友好”值。相反,它应该像......

<input type="radio" value="nologo" name="color" /> As shown&mdash;without logo

然后,您的服务器将处理此“nologo”值,并在向用户呈现时,将返回更具可读性的内容。

显然你如何做到这一点取决于你,但是“人类数据”与“计算机数据”的总体思路就是我在这里得到的。服务器不需要处理用户看到的文本。此外,这允许您更改“nologo”的确切措辞,而无需更改整个数据结构。

答案 1 :(得分:0)

您的无线电输入中提供的value=".."(PHP脚本检查)不会显示给最终用户,因此只要它们是唯一的,您将这些值设置为什么并不重要。最简单的解决方案是避免在value属性中使用em dash。

试试这个:

<div class="fieldwrap">
  <div class="formlabel">
    <p>Color Options<span style="color:red">*</span></p>
  </div>
  <label>
   <input type="radio" value="without" name="color"
   <?php  if ($fields['Color']=='without') echo 'checked="checked"' ; ?>>
   As shown&#8212;without logo
  </label><br>
  <label>
    <input type="radio" value="with" name="color" 
    <?php if ($fields['Color']=='with') echo 'checked ="checked"' ; ?>>
    As shown&#8212;with logo</label>
</div>

用户仍会看到em破折号,因为您在单选按钮输入后将其作为文本包含在内。