получать данные из MySQL на jquerymobile только при обновлении страницы

Итак, я пытаюсь загрузить данные и перейти на другую страницу, как только я нажимаю на кнопку поиска в моем index.html.

это моя кнопка поиска

 <a href="results.html" data-role="button" data-icon="search"
 data-iconpos="notext">search</a>

и пока он загружается, я хочу, чтобы страница запускала эту функцию и получала данные

      $(function () { $.getJSON("API.php", {
         command: "getBusiness",
         orig_lat: myPos.lat,
         orig_long: myPos.lon, 
         distance: 0.05 },

      function (result) { 
         $("#locations").html("");
         for (var i = 0; i < result.length; i++) {
            $("<a href='business.html?ID=" + result[i].id + "&bsnName=" + "'>
            <div>" + result[i].bsnName + " " + (parseInt(result[i].distance * 1000))
            "</div></a>").appendTo("#locations");}});});

Страница загружается без БД, только когда я нажимаю Обновить, она показывает мне результат

Я не уверен, что здесь не так, я не должен использовать getJSON ?? Я видел, как люди говорили о .Ajax () это то же самое, что getJSON ()?

Есть ли лучшая идея о том, как перейти на другую страницу и одновременно получить данные из БД на страницу, которую вы собираетесь загрузить на jquerymobile?

Я пытался использовать ту же функцию с помощью onclick, она работала, когда я дал ей div

остальная часть головы

 <link rel="stylesheet" href="styles/jquery.mobile.structure-1.1.0.min.css" />
    <link rel="stylesheet" href="styles/jquery.mobile.theme-1.1.0.min.css" />
    <link rel="stylesheet" href="styles/my.css" />
    <script src="scripts/jquery-1.7.2.min.js"></script>
    <script src="scripts/jquery.mobile-1.1.0.min.js"></script>
    <script src="scripts/cordova-1.8.1.js"></script>

        <script>

            // Wait for Cordova to load
            //
            document.addEventListener("deviceready", onDeviceReady, false);

            var watchID = null;
            var myPos = { lat: 32.0791, lon: 34.8156 };

            // Cordova is ready
            //
            function onDeviceReady() {
                // Throw an error if no update is received every 30 seconds
                var options = { timeout: 10000 };
                watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
            }

            // onSuccess Geolocation
            //
            function onSuccess(position) {
                var element = document.getElementById('geolocation');
                //myPos.lat=position.coords.latitude;
                //myPos.lon=position.coords.longitude;     

                element.innerHTML = 'Latitude: ' + position.coords.latitude + '<br />' +
                            'Longitude: ' + position.coords.longitude + '<br />' +
                            '<hr />' + element.innerHTML;
            }

            // onError Callback receives a PositionError object
            //
            function onError(error) {
                alert('code: ' + error.code + '\n' +
              'message: ' + error.message + '\n');
            }
 Adam07 июл. 2012 г., 17:41
Нет сообщения об ошибке, когда я обновляю страницу, на которой она работает, но не раньше
 Anirudh Ramanathan07 июл. 2012 г., 17:20
Сообщение об ошибке? Если есть ...

Ответы на вопрос(1)

Решение Вопроса

когда jQuery mobile загружает первую или индексную страницу, он загружает весь заголовочный раздел (Javascript, CSS и т. Д.) И основной раздел. но когда пользователь щелкает ссылку на сайте, управляемом jQuery Mobile, поведение навигационной системы по умолчанию заключается в использовании href этой ссылки для формулирования запроса Ajax (вместо того, чтобы разрешить поведению ссылки по умолчанию браузера запрашивать этот href) при полной загрузке страницы). Когда этот Ajax-запрос отправляется, каркас получает все текстовое содержимое, но он только внедряет содержимое элемента body ответа.

Может быть несколько решений этой проблемы, например,

The simplest approach when building a jQuery Mobile site is to reference the same set of stylesheets and scripts in the head of every page.

Linking without Ajax by using an attribute data-ajax="false" in your link this attribute will load the next page without ajax and animation so both head and body section would load.

If you need to load in specific scripts or styles for a particular page, It is recommended binding logic to the pageInit e.g. "#aboutPage" is id="aboutPage" attribute .

 $( document ).delegate("#aboutPage", "pageinit", function() {
   //you can place your getJson script here. that will execute when page loads 
   alert('A page with an ID of "aboutPage" was just created by jQuery Mobile!');
 });

Поэтому в вашем случае лучшим решением будет связать ваш ajax-вызов или другой скрипт-скрипт с событием pageinit.

Вы можете получить помощь на этих страницах документации по jQuery Mobile.

http://jquerymobile.com/demos/1.1.0/docs/pages/page-links.html

http://jquerymobile.com/demos/1.1.0/docs/pages/page-scripting.html

 Adam08 июл. 2012 г., 06:27
это также объясняет, почему, когда я пытался загрузить функцию геолокации не на странице индекса, это создало эту проблему
 Adam08 июл. 2012 г., 05:58
я попытался использовать предложенный вами код, он работает, но мне пришлось добавить data-ajax = & quot; false & quot; к моему тегу и к моей кнопке «Назад», чтобы при каждом вводе моей ссылки загружался код JS, есть ли способ сохранить ajax на моей странице? я должен загрузить все эти функции с внешним файлом JS?

Ваш ответ на вопрос