Открытие динамически заполняемого диалогового окна jqm

#javascript #jquery-mobile

#javascript #jquery-мобильный

Вопрос:

Хотя я немного разбираюсь в php, я пробиваюсь через мобильный проект jQuery через Phonegap для приложения iOS. Итак, разобраться в javascript (быстро) было непросто. Удалось решить большинство проблем в основном с помощью здешних добрых людей, поэтому я подумал, что задам этот вопрос, для которого я не могу найти решение.

У меня есть список, который генерируется из запроса ajax (сводка с заголовком и кратким описанием), причем полная информация хранится в базе данных SQLite для автономного использования. Я хочу открыть диалоговое окно с полной детализацией по щелчку. Диалоговое окно JQM data-rel является простым для статических страниц, но я не могу найти способ отправить диалоговой странице параметр индекса для извлечения данных из базы данных. Как только я переведу параметр на «страницу», я довольно уверенно извлекаю данные и заменяю элементы DOM, поэтому короткий вопрос заключается в том, как мне отправить параметр индекса из списка на страницу диалога?

Заранее огромное спасибо!

Ответ №1:

Вы можете в своем списке (я предполагаю data-role="listview" здесь) создавать ссылки, представляющие интерактивные элементы:

 <ul data-role="listview">
    <li>
        <a href="dialog.html?id=someId" data-rel="dialog">Show details</a>
    </li>
</ul>
  

куда вы вставляете someId динамически при создании своего списка.

На странице диалога вы анализируете свой URL и получаете идентификатор.

Обновить

Следующее подтверждено как работающее в Safari (на моем рабочем столе):

 <a href="dialog.html?id=someId" data-rel="dialog">Show details</a>
  

и использование было бы:

 $.mobile.path.parseUrl($(this).data('url')).search
  

которое будет содержать следующую строку:

 ?id=someId
  

Комментарии:

1. Это то, что я думал, но в Safari он не отправляет параметр. URL-адрес является составным.html#награды и состояние пользовательского интерфейса = диалоговое окно, где composite.html это целая страница, а accolades — страница со списком, вызывающая диалоговое окно. Итак, нет параметра для получения. Диалоговое окно отображается как и должно, но разделы пусты.

2. Это странно, извините, но я смогу протестировать это завтра. Я постараюсь вернуться к вам.

3. Спасибо ZenMaster, высоко ценится.

4. Спасибо ZenMaster, который сделал это. Для любых других новичков, которые сталкиваются с этим, он возвращает все это, то есть ‘?id=someId’, а не только ‘someId’. Мне нужно было целое число, поэтому я использовал finalid = parseInt(id.slice(id.indexOf(‘=’) 1)); Еще раз спасибо.