Множественные выбранные значения оповещают половину

Я хотел бы, чтобы Javascript предупреждал об имени всего сотрудника (имя и фамилия), но с этим кодом по какой-то причине он показывает только имя. Любые идеи о том, как решить эту проблему?

Вот мой код:

if ( $even1 % 2) 
    echo "<option value=". $employee_firstname . " " . $employee_lastname . ">". $employee_firstname . " " . $employee_lastname . "</option>";
else
    echo "<option value=". $employee_firstname . " " . $employee_lastname . ">". $employee_firstname . " " . $employee_lastname . "</option>";

JavaScript

var List = document.getElementById('slcEmp');
var x = 0;

for (x = 0; x < List.length; x++) {
    if (List[x].selected) {
        alert(List[x].value);
    }
}

1 ответ

Решение

Вам необходимо поместить значение атрибута в кавычки, так как оно содержит пробел:

echo "<option value='". htmlentities($employee_firstname) . " " . htmlentities($employee_lastname) . "'>". $employee_firstname . " " . $employee_lastname . "</option>";
                    ^                                                                                 ^

Вы также должны использовать htmlentities() если имя содержит специальные символы (например, O'Leary).

Другие вопросы по тегам