Как запросить содержимое страницы, нажав div с помощью jQuery mobile? - PullRequest
1 голос
/ 11 сентября 2011

Я пытаюсь извлечь данные из страницы обратного вызова (php) и загрузить их в html div с помощью jQuery mobile . Это должно произойти, если пользователь нажимает на другой div.

То, что я на самом деле получил, это

$.('#home-button').bind('vclick', function( e ) {
    $.get('homeCallback.php',function(data){
        $('#displayContent').append(data).trigger('create');
    },'html');
});

Где #home-button - это div, который должен вызвать событие, а #displayContent - div, в который должно быть помещено содержимое. Запрос должен иметь возможность передавать некоторые параметры тоже. Как и homeCallback.php?param=1, но он также может использовать метод post. Обратный вызов не должен быть только html, также возможно, что php-сценарий обратного вызова предоставит данные JSON или что-либо еще.

Я не взломщик JS, поэтому у меня проблемы с решением этой проблемы. Спасибо за вашу помощь!

Edit: Поэтому я нашел решение самостоятельно:

$(document).ready(function() {
    $.ajaxSetup ({
        cache: false
    });

    var ajaxLoader = '<img src="images/ajax-loader.gif" alt="loading.." />'; 
    var loadUrl = "homeCallback.php";  

    $('#home-button1').click(function(){
        $('#displayContent').toggle('fast', function() {
            $(this).html(ajaxLoader);
            $(this).toggle('fast', function() {
                $.get(loadUrl + '?option1',function(data){
                    $('#displayContent').html(data);
                },'html');                  
            });
        });
    });

    $('#home-button2').click(function(){
        $('#displayContent').toggle('fast', function() {
            $(this).html(ajaxLoader);
            $(this).toggle('fast', function() {
                $.get(loadUrl + '?option2',function(data){
                    $('#displayContent').html(data);
                },'html');                  
            });
        });
    });
});

И это то, что homeCallback.php просто делает ..

<?php
if( isset($_GET["option1"] ))
    echo "option1";
if( isset($_GET["option2"] ))
    echo "option2";

Пока.

1 Ответ

0 голосов
/ 11 сентября 2011
$.('#home-button').bind('click', function() {
    $.ajax({
        url: "homeCallback.php",
        type: "POST",
        data: ({param: 1, param2: 2}),
        success: function(html){
            $("#displayContent").html(html);
        }
    });
});
...