JavaScript — Использование Em Dashhes в массивах контактных форм

начинающий веб-разработчик здесь. Я создаю форму заказа контактов для своего веб-сайта, и в поле, которое я использую, используются переключатели, чтобы предложить пользователю возможность выбора между X и Y. Если я использую тире, они будут отображаться очень хорошо на визуальная сторона вещей, но независимо от того, использую ли я символ тире для значения параметра, он не сохранит значение, если будут какие-либо ошибки. Позвольте мне объяснить.

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

Любые идеи о том, что мне нужно сделать, чтобы он хорошо работал во всех браузерах?

Спасибо!

РЕДАКТИРОВАТЬ: Вот что я получаю, когда я бегу var_dump($_REQUEST); в Firefox.

array (15) {[«requiredinput»] => string (0) «» [«productname»] => string (18) «Рождественская елка» [«количество»] => string (2) «12» [» size «] => string (24)» 3.75 «x 2.1875» x 3.625 «» [«color»] => string (12) «Без логотипа» [«coat»] => string (4) «None» [» duedate «] => string (0)» «[» jobname «] => string (0)» «[» comments «] => string (0)» «[» name «] => string (0)» » [«company»] => string (0) «» [«phone»] => string (0) «» [«fax»] => string (0) «» [«email»] => string (0) «» [«PHPSESSID»] => string (32) «003cb8367fd4f8dac28e9efaae8d03b4»}

0

Решение

Избегайте использования «дружественных» значений. Вместо этого должно быть что-то вроде …

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

Затем ваш сервер будет обрабатывать это значение «nologo» и, представляя его пользователю, вернет более читабельную вещь.

Очевидно, как вы это делаете, зависит от вас, но общая идея «человеческих данных» против «компьютерных данных» — вот что я имею в виду. Серверу не нужно иметь дело с текстом, который видит пользователь. Кроме того, это позволяет вам изменить точную формулировку значения слова «nologo» без необходимости изменения всей структуры данных.

1

Другие решения

value=".." входящие в ваши радиовходы (которые проверяет PHP-скрипт) не отображаются для конечного пользователя, поэтому не имеет значения, какие значения вы устанавливаете, пока они уникальны. Самым простым решением было бы просто избежать использования тире em в атрибуте value.

Попробуй это:

<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, поскольку вы включили его в текст после радиокнопки.

0

По вопросам рекламы [email protected]