#php #jquery
#php #jquery
Вопрос:
Я просматривал много страниц об этом и, похоже, не могу понять, почему это не работает.
На HTML-странице я использую PHP для динамического создания выпадающего списка на странице, подобного этому:
$sel = '<select "id"="userPhones">';
foreach ($user_phones as $single_phone)
{
$phoneId = $single_phone['id'];
$phoneNum = $single_phone['phone_num'];
if($single_phone['isdefault']=='1')
{
$sel.="<option id=".$phoneId." selected='selected'>".$phoneNum."</option>";
}
else
{
$sel.="<option id=".$phoneId.">".$phoneNum."</option>";
}
}
$sel .='</select>';
echo $sel;
Я вижу, что выпадающий список отображается на странице без проблем, и все выглядит так, как будто это работает. Но позже я попытаюсь использовать jQuery, чтобы получить значение из выпадающего списка, чтобы воздействовать на него, делая это:
phone_num = $('#userPhones :selected').val();
alert(phone_num);
По какой-то причине всякий раз, когда я пытаюсь получить значение, я получаю предупреждение «undefined», а не значение выпадающего списка. Я уверен, что это задается, потому что я посмотрел на исходный код страницы и я проверил с помощью Firebug, что элементы существуют на странице. Я пробовал просто использовать идентификатор выпадающего списка и val (), я пробовал использовать text (), но, похоже, ничего не получается захватить. Может кто-нибудь, пожалуйста, сказать мне, что, черт возьми, здесь происходит? Я уже некоторое время ломаю голову над этим.
Комментарии:
1. Почему вы цитируете ‘id’ в инструкции:
$sel = '<select "id"="userPhones">';
? Кстати, jQuery работает на стороне клиента, поэтому нам нужно просмотреть отрисованный (x) html, чтобы правильно помочь.
Ответ №1:
id
Поле в элементе select не должно заключаться в кавычки. Это недопустимая разметка, и поэтому jQuery не находит ее с этим идентификатором.
Комментарии:
1. Это сделало это!! Большое спасибо, что положили конец моим пыткам!