【问题标题】:How to run SQL select query via AJAX (live results)如何通过 AJAX 运行 SQL 选择查询(实时结果)
【发布时间】:2018-09-20 07:58:30
【问题描述】:

我试图在使用 SQL 更新功能后显示更新的 SQL 记录。我怎样才能使用 AJAX 来实现这一点。在 JavaScript 文件中,我有通过 AJAX 工作的 SQL 更新功能。成功执行更新函数后,将调用异步函数。我相信 data 属性设置不正确。启动此功能后,在页面刷新之前看不到任何更新。我正在尝试获取实时 SQL 选择输出。

HTML:(包含php文件:prevoznik.php)

<div class="row pt-5">
        <div class="col-12 ff-nu fs-16 fw-600">Izgled za prevoznika
            <div class="row pt-3" id="prevoznik">
                <div class="col-12 list-widget">
                    <div class="row divider-heading uppercase py-3">
                        <div class="col-1 fs-09 fw-600">id</div>
                        <div class="col-3 flex-vcenter-items fw-600 fs-09">naslov</div>
                        <div class="col-1 flex-vcenter-items fw-600 fs-09">ura</div>
                    </div>
                    <?php require 'includes/prevoznik.php'; ?>
                </div>
            </div>
        </div>
    </div>
</div>

PHP (prevoznik.php)

$sql3 = "
SELECT id, potnik_id, ura, naslov
FROM prevoznik 
ORDER BY HOUR(ura), MINUTE(ura) ASC;
";
$result = $conn->query($sql3);
$potnik = $row["potnik"];
if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {

        //Spremenjena oblika datuma
        $date = date_create($row["ura"]);
        $ura_pobiranja = date_format($date,"H:i");
        echo "<div class=\"row list  divider-gray\">
                <div class=\"col-1 fs-09 fw-600\">" . $row["id"] . " </div>
                  <div class=\"col-3 flex-vcenter-items fw-600 fs-09\">" . $row["naslov"] . " </div>
                <div class=\"col-1 flex-vcenter-items fw-600 fs-09\">$ura_pobiranja</div>
            ";

        if ($row["naslov"] !== null) {
            echo " <div class=\"col-6 flex-vcenter-items fs-1\">
                            <form id='form' action='' method='POST'>
                                 <input id='id' name='potnik' value='".$row["id"]."' type='hidden' /> 
                                 <input id='cas' class=\"form-control fancy-border\" type=\"text\" name=\"posodobljeni_cas\"/>
                                 <input class='btn btn-outline-primary' id='submit' type='submit' value='Nastavi uro'>
                             <label id=\"info\"></label>
                         </form>
                     </div>";
            echo " </div>";//update.php?id=" . $row["id"] . "
        }
        else {
            echo " </div>";
        }
    }
} else {
    echo "<div class=\"col flex-vcenter-items fw-100 fs-1\"><i class=\"far fa-frown-open pr-3\"></i>Nimaš še nobenih opravil
                                    </div>";
}

JAVASCRIPT

//Async update
    $(function () {
        $('#form').on('submit', function (e) {
            let idrow = $("#id").val();
            let updaterow = "update.php?id=";
            console.log(updaterow + idrow);
            e.preventDefault();

            $.ajax({
                type: 'post',
                url: updaterow + idrow,
                data: $('#form').serialize(),
                success: function () {
                    console.log('ura posodobljena');

                    //Async select update
                    $.ajax({
                        type: 'post',
                        url: 'prevoznik.php',
                        data: $('.list'),
                        success: function () {
                            console.log('Select izveden');
                        }
                    });

                }
            });
        });
    });
});

我认为 data: $('.list') 应该被替换,但我不知道我应该在这里插入什么。

【问题讨论】:

  • $('.list').html("new content");
  • @u_mulder 安装了“新内容”,我如何打印实时 SQL 选择语句。那是我的问题。

标签: php jquery ajax


【解决方案1】:
   $.ajax({
            type: 'post',
            url: 'prevoznik.php',
            data: $('.list')
        }).done(function(data) {
            console.log('Select izveden');
            $('.list').append(data)
        });

【讨论】:

  • 似乎有点工作,但是这个脚本循环附加,就像整个页面发生多次重复一样。
  • 如果您只想显示最后一个结果,您可以使用.html 而不是.append
  • 我尝试使用 html 并发生同样的事情。它循环整个网站 100 次。我应该将 .list 更改为其他内容吗?
  • .html 将 div 的当前内容替换为您提供的字符串。如果显示 100 次,则表示您的 php 文件循环了 100 次。你的 while 循环正确吗?
  • 是的,我的 while 循环是正确的。但奇怪的是循环整个页面而不是只循环 SQL 选择部分。
猜你喜欢
  • 2017-06-18
  • 1970-01-01
  • 2021-11-12
  • 2017-11-04
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多