Как перезагрузить div с помощью кнопки на JS?

есть div, в котором выводятся данные из БД

<div id="showname">
 
<?php
  $user_object = mysqli_query ($connection, "SELECT * FROM `user` ORDER BY `id`");
  while ($user = mysqli_fetch_assoc ($user_object)) {
 ?>

<p><?php echo $user['name']; ?></p>
</div>

и есть кнопка

<button id="reload">Обновить</button>

Как сделать, чтобы при нажатии кнопки перезагружался только div, а не станица целиком?


Ответы (1 шт):

Автор решения: Denis A

Если Вы желаете что бы после нажатия кнопки "Обновить"- обновлялось имя пользователя, то создайте Ajax запрос который будет срабатывать после нажатия кнопки. Пример: HTML , тут на кнопочку вешаем событие onclick="upd()

<input name="random_go" type="button" value="Обновить" onclick="upd()">

После ее нажатие активируется Ajax

function upd(){
    var postData = getData('#blox_index_site');

    $.ajax({
        type: 'POST',
        url: "/index/upd/",
        data: postData,
        dataType: 'json',
        success: function(data){
            var result = data['result'];
            $('#showname').html(result);
        }   
    });
}

Также для корректной работы всех Ajax запросов необходимо добавить в файлик JS вот это

function getData(obj_form){
    var hData = {};
    $('input, textarea, select', obj_form).each(function() {
        if(this.name && this.name!=''){
            hData[this.name] = this.value;
            console.log('hData[' + this.name + '] = ' + hData[this.name]);
        }   
    });
    return hData;
};

Как Вы уже заметили в функции upd эта функция используется var postData = getData('#blox_index_site');

Ну а в самом PHP прописать :

function upd(){
    
         $user_object = mysqli_query ($connection, "SELECT * FROM `user` ORDER BY `id`");
  while ($user = mysqli_fetch_assoc ($user_object))

        //передача на страницу
        $array = array();
            $array['success'] = 1;
            $array['result'] = $user['name'];
        echo json_encode($array);
    }

Вы дергаете кнопочкой Ajax, он функцию upd, PHP берет/обновляет значение $user['name'] и передает его обратно в Ajax, который в свою очередь обновляет только один блок div, а не всю страницу - $('#showname').html(result);

→ Ссылка