нажмите на DIV, загрузить контент из базы данных на другой раздел

Моя концепция - загрузить содержимое div в другой div в html. Короче говоря, я хочу узнать, как работает новый почтовый ящик Facebook, когда мы нажимаем на сообщение справа, содержимое и извлекается из базы данных и загружается в центральном столбце. Я знаю, что это сделано некоторыми AJAX, но не может понять, как это возможно.

Заранее спасибо.

 user173147628 окт. 2012 г., 00:52
Я хочу подробное объяснение ... ЯЯ новичок в этом.
 salih0vicX28 окт. 2012 г., 00:40
Вы можете найти ответ здесь:stackoverflow.com/questions/1313813/...

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

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

вы можете использовать событие onclick для div.

Это HTML / JS, эта работа такова.



    
        <title>Document Title</title>
        <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
        <script>
            $('.clickable').on('click', function(){
                var data_id = $(this).data('id');
                $.ajax({
                    url: 'ajax.php',
                    type: 'POST',
                    data: {id: data_id},
                    dataType: 'json',
                    success: function(data){
                        $('#more-info').html(data.html);
                    },
                    error: function(jqXHR, textStatus, errorThrown){
                        $('#more-info').html('');
                        alert('Error Loading');
                    }
                });
            });

            });
        </script>
    
    
        <div id="item-one" class="clickable" data-id="123">Click me</div>
        <div id="item-two" class="clickable" data-id="456">Click me</div>
        <div id="more-info"></div>
    

и скажем, у нас есть файл PHP с именемajax.php вернет JSON, как мы указали ранее в функции AJAXтип данных: 'JSON» и мы отправляемЯ БЫ через POST, так вот пример, вы должны работать над этим.

ajax.php

<!--?php
$id = (int)$_POST['id'];
$query = "SELECT * FROM messages WHERE message_id = {$id} LIMIT 1"; //expecting one row
$result = mysql_query( $query );
$message = mysql_fetch_assoc( $result ); //expecting just on row

$json = array();
$json['html'] = '<p-->' . $message . '<p></p>';

header('Content-Type: application/json');
echo json_encode( $json );
?>
 user173147605 нояб. 2012 г., 12:54
Код не работает.
 user173147628 окт. 2012 г., 01:02
идентификатор id меняется каждый раз. Может ли это быть так же, потому что язагружая все сообщения на правой панели, используя цикл while.
 Welling29 окт. 2012 г., 04:26
@ user1731476 что 'верно!
 user173147629 окт. 2012 г., 08:11
Большое спасибо за вашу помощь.
 user173147628 окт. 2012 г., 01:19
Я хочу знать, что когда я нажму на сообщение, куда будет загружаться контент?
 user173147628 окт. 2012 г., 21:47
Есть ли у меня правильно: когда я нажимаю "Нажми на меня" чей data-id равен 123, этот идентификатор отправляется в файл ajax.php, который выполняет поиск в базе данных и отправляет json обратно на страницу html, а конкретное сообщение загружается в div mail-info.
 Welling28 окт. 2012 г., 01:15
больше информации представляют правую панель, и$message в этом случае одно сообщение, если вы хотите, вы можете использовать цикл while для загрузки этих сообщений в массив. и внутриmore-info элементappend вместо использования$(element).html(val) использование$(element).append(val) и использовать список вместо простого<p></p>
 Welling28 окт. 2012 г., 01:21
success: function(data){ $('#more-info').html(data.html); }, это сделает загрузку внутри элемента с идентификаторомmore-info
 Welling05 нояб. 2012 г., 23:54
Какие'не работает? дайте мне некоторые детали, чтобы я мог помочь вам.

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