Задать вопрос
Xrist1An
@Xrist1An
задаю глупые вопросы

Как менять текст на странице с помощью ajax?

Есть такой код:
<?php
$block_1 = '<p>some text</p>';
$block_2 = '<p>another some text</p>';
?>


<body>

<div id="box"></div>
<a href="">Change!</a>

</body>


Как сделать так, чтобы при загрузке страницы в #box был показан $block_1, а при нажатии на "Change" он бы исчезал и подгружался второй ($block_2)? Важно, чтобы он именно подгружался, display:none и т.д. не подходят. Кода этого блока не должно быть на странице в принципе.

Как будет выглядить ajax код для этой задачи? Заранее спасибо.
  • Вопрос задан
  • 559 просмотров
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
opium
@opium
Просто люблю качественно работать
В совсем простом варианте, вешаете на click
("#box").load(здесь_нужная_ссылка);
Ответ написан
Комментировать
@Extramezz
document.query selector("box").addEventListener("onclick", function(){
var x = new XMLRequest;
x.onreadystatechange = function(){ нужный блок.innerHtml = this.responseText};
x.open('file.file', 'GET', true);
//x.send('take=lol&take2=lol2'); для параметров запроса
});
Ответ написан
Комментировать
На клиенте:
$(document).ready(function() {

    var a = '1';
    var b = '2';

    getText(a);

    function getText(text) {
        $.ajax({
            type: "POST",
            data: {parametr: text},
            url: "text.php",
            success: function (text) {
                    $('#box').empty();
                    $('#box').append(text);
            }
        });
    }

    $(document).on(
        'click',
        'a',
        function(){
            getText(b);
        }
    );

});

На сервере
if($_POST['parametr'] == '1'){
        $block_1 = '<p>some text</p>';
        echo $block_1;
    } else if($_POST['parametr'] == '2'){
        $block_2 = '<p>another some text</p>';
        echo $block_2;
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы