2013-04-25 1 views
1

У меня есть HTML-файл с кодом для формыПробелы в названии списка box- HTML

<select name="listbox" size="3"> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
</select> 

Я использую значения в PHP скрипт. Если я переименую 'listbox' в 'list box', он не будет работать в любом браузере. Я понимаю, из-за белого пространства, верно? Являются ли пробелы в именах недопустимыми в html? Благодарим вас за помощь.

+0

@Raidenace: нет, не следует. Значения атрибутов HTML - это пробелы с пробелом, имя 'list box' будет * двумя * именами (что является недопустимым). –

ответ

4

Прочитайте спецификацию на http://www.w3.org/TR/html401/types.html#type-name

ID и ИМЯ маркеров должны начинаться с буквы ([A-Za-Z]) и может следовать любое количество букв, цифр ([ 0-9]), дефисы («-»), подчеркивания («_»), двоеточия («:») и периоды («.»).

+0

Спасибо. Я только что начал html и т. Д., И раньше этого не встречал. Но почему он правильно отображает окно списка в браузере? Он не учитывает имя при отображении? – user22515

+0

nope, имя не влияет на визуальное представление, поэтому оно имеет значение, если оно даже имеет один. –

+0

Еще раз спасибо – user22515

0

Пробуйте этот HTML-код. И Mozilla Firefox, и IE в порядке с ним!

<html> 
<head> 
<title>Name Attribute with Spaces</title> 
</head> 
<body> 
<form method="get"> <!-- no "action", form will post to self --> 
<table> 
    <thead><b>Please provide login details</b></thead> 
    <tbody> 
    <tr> 
     <td>Username:</td> 
     <td><input type="text" name="user name" /></td> 
    </tr> 
    <tr> 
     <td>Password:</td> 
     <td><input type="password" name="pass word" /></td> 
    </tr> 
    <tr> 
     <td>List Box:</td> 
     <td> 
      <select name="123 list box" size="3"> 
       <option value="1">1</option> 
       <option value="2">2</option> 
       <option value="3">3</option> 
      </select> 
     </td> 
    </tr> 
     <tr> 
     <td colspan="2"><input type="submit" value="Login" /></td> 
    </tr> 
    </tbody> 
    </table> 
</form> 
</body> 
</html> 

Причина HTML не имеет каких-либо проблем с пробелами в Кодировка URL. Если вы проверите приведенную выше форму, вы обнаружите, что браузеры автоматически кодируют специальные символы, и, следовательно, пространство «» преобразуется в «+» (или, иногда, «% 20»).

test.html?user+name=ravi&pass+word=canuseeme&123+list+box=2

Причина, почему PHP, кажется, бежит в неприятности (от того, что я смутно помню), что он пытается выставить параметры запроса, как легко доступные переменные в PHP программиста. И имена переменных на любом языке не содержат пробелов или начинаются с цифр.

Edit: В самом деле, если вы сделаете множественного выбор истинного для выбора коробки (просто добавьте множественные атрибута в выбрать) имя должно заканчиваться "[]" дать PHP намек, что он должен организовать переменную Array!

Смежные вопросы