@ArikKirov

Как поменять значение id через ajax?

Всем привет. Очень долго не могу решить следующую задачу:
Есть html кнопка:
<?= Html::button('1', ['class' => 'news-navigation-item']) ?>

При ее нажатии происходит ajax запрос:
<?php
$script1 = <<< JS

$(document).on('click', '.news-navigation-item', function(){
    $.ajax({
        url: 'index.php?r=site%2Fhome',
        type: 'GET',

        data: {'id' : '1'},
        success: function(res){
            console.log('успешно');
            },
        error: function(){
                alert("request error");
            },
    });
});
JS;
$this->registerJs($script1);

Необходимо чтобы при нажатии кнопки в следующем textarea с классом text, который делает запрос в БД, значение id менялось:
<textarea class="text"><?php echo Yii::$app->db->createCommand('SELECT text FROM news1 WHERE id=1')->queryOne()['text']?></textarea>

Как это можно сделать и можно ли это сделать другими путями ?
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
HighTechLowLife
@HighTechLowLife
Мне кажется, у вас нет понимания как работает ajax. Советую почитать об этом с примерами на PHP.
`index.php?r=site%2Fhome` -- это главная страница и вы её аяксом загружаете со всем html-ом и скриптами заново? Так работать не будет.
Нужно делать запрос на отдельный аякс-обработчик который возвращает json или текст с данными. Далее, с помощью Js в success обработчике устанавливаете $('textarea.text').text(res.text);

Но пробросить id можно через GET.
Yii::$app->db->createCommand('SELECT text FROM news1 WHERE id=:id')->bindParam('id', $_GET['id'])->queryOne()

Тогда можно менять цифру в `data: {'id' : '1'},`.

Но, повторюсь, у вас, похоже, архитектурно всё неправильно и работать не будет.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы