使用Ajax

时间:2017-10-26 14:55:21

标签: php jquery ajax dynamic flush

家伙!我需要通过AJAX请求将PHP脚本的结果动态输出到另一个页面上(如果可能的话)。

更多deatails

我正在从汽车制造商和模型数据库的远程API解析数据,需要正确地将其解析为我的本地Opencart 2.3数据库。因为那里有大约150K的汽车改装,我需要看看解析过程现在处于什么阶段。

所以,我现在拥有的 1.我有一个页面,我们可以开始解析过程: Parser interface

整个代码(你可以在底部看到AJAX调用脚本):

<?php echo $header; ?><?php echo $column_left; ?>
<div id="content">
    <div class="page-header">
        <div class="container-fluid">
            <div class="pull-left">
                <h1><?php echo $heading_title; ?></h1>
                <ul class="breadcrumb">
                    <?php foreach ($breadcrumbs as $breadcrumb) { ?>
                    <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li>
                    <?php } ?>
                </ul>
            </div>
        </div>
    </div>
    <div class="container-fluid">
        <div class="panel panel-default">
            <div class="panel-heading">
                <h3 class="panel-title"><i class="fa fa-pencil"></i> <?php echo $text_form; ?></h3>
            </div>
            <div class="panel-body">

                <?php echo $text_input; ?><button class="btn btn-primary"><?php echo $text_parse; ?></button>
                <div class="form-group">
                    <label class="col-sm-2 control-label" for="input-meta-description<?php echo $language['language_id']; ?>"><?php echo $text_below; ?></label>
                    <div class="col-sm-10">
                        <textarea rows="25" class="form-control"></textarea>
                    </div>
                </div>

            </div>
            <?php // echo $text_success; ?>
        </div>
    </div>
</div>
<?php echo $footer; ?>

<script>
    $('body').on('click', '.btn.btn-primary', function(){
        $(this).attr("disabled", true);
        var url = window.location.href;
        var urlAux = url.split('=');
        var token = urlAux[2];
        $.ajax({
            url: 'index.php?route=catalog/category_parser/parser&token='+token,
            type: "POST",
            success: function (response) {
                    $('textarea.form-control').append(response);
                $('.btn.btn-primary').attr("disabled", false);
                },
            error: function (response) {
                alert('Something went wrong');
                $('.btn.btn-primary').attr("disabled", false);
            }
        });
    })
</script>
  1. AJAX触发PHP方法,该方法开始解析并返回一些数据:
  2. 无法复制代码;(对于Stack来说太过分了...... 但想象一下,我们有简单的周期:

     if (ob_get_level() == 0) {
                        ob_start();
                    }
    
        for ($i = 0; $i < 5; $i++){
            echo "bla-";
            ob_flush();
            flush();
            sleep(1);
        }
    ob_end_flush();
    

    因此,我们需要将其输出到页面的文本区域,我们希望脚本的结果能够工作。像这样的东西: bl-blablabla

    我已经有了这个结果。但所有的&#34; bla-bla-bla&#34; (例如)在一秒钟内不是一个接一个地出现,而是在脚本在5秒内结束并输出所有结果之后。

    如何动态地从PHP脚本输出数据,是否可以使用AJAX?我对使用什么技术没有严格的条件,它应该以某种方式工作,这就是全部。如果它是iframe或其他东西,无论如何它都会很棒。寻求帮助,因为我现在已经陷入困境。

    感谢大家!

0 个答案:

没有答案