We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 39706
    • 34 Posts
    Please, hepl. Already 4 days struggling over the issue, does not want to run the progress bar. That's what I do:
    Through FormIt do form:
    <link rel="stylesheet" href="[[*st_url]]/css/jqueryui-lightness/jquery-ui.css" />
    <script src="[[*st_url]]/js/jquery-ui.min.js"></script>
    <script src="[[*st_url]]/js/jquery.blockUI.js"></script>
    [[!FormIt?
       &hooks=`galhp_upload_check,galhp_upload`
       &successMessage=`Спасибо! Ваш хэпибук добавлен.`
       &validate=`title:required,
       category:required,
       descr:required:stripTags,
       zip:required,
       nospam:blank`
    ]]
    <h1>[[*pagetitle]]</h1>
    
    [[!+fi.error_message:notempty=`<script>$(document).ready(function() { $.unblockUI(); });</script><div class="error_mes">[[!+fi.error_message]]</div>`]]
    [[!+fi.successMessage:notempty=`<script>$(document).ready(function() { $.unblockUI(); });</script><div class="ok_mes">[[!+fi.successMessage]]</div>`]]
    
    <form id="upload-hbook-form" action="[[~[[*id]]]]" method="POST" class="form" enctype="multipart/form-data">
        <input type="hidden" name="nospam:blank" value="" />
        <input type="hidden" name="[[!session_progress_get]]" value="uploadfile" />
        <input type="hidden" name="uid" value="[[!+modx.user.id]]" />
         
    <div class="form-row">
        <span class="form-row-field"><label for="title" class="form-label">Название<span class="form-field-requared">*</span></label></span>
        <span class="form-input-field"><input data-required="required" type="text" name="title" id="title" title="Название" value="[[!+fi.title]]" /></span><span class="error">[[!+fi.error.title]]</span>
    </div>
    <div class="form-row">
        <span class="form-row-field"><label for="category" class="form-label">Категория<span class="form-field-requared">*</span></label></span>
        <span class="form-input-field">[[!GalleryAlbums?  &toPlaceholder=`galleries` &limit=`0` &albumCoverSort=`rank` &prominentOnly=`0` &rowTpl=`galAlbumSelectTpl`]]<select name="category" id="category"><option name="-1"></option>[[+galleries]]</select></span><span class="error">[[!+fi.error.category]]</span>
    </div>
    <div class="form-row">
        <span class="form-row-field"><label for="descr" class="form-label">Описание<span class="form-field-requared">*</span></label></span>
        <span class="form-input-field"><textarea name="descr" id="descr" cols="55" rows="7" value="[[!+fi.descr]]">[[!+fi.descr]]</textarea></span><span class="error">[[!+fi.error.descr]]</span>
    </div>
    <div class="form-row">
        <span class="form-row-field"><label for="zip" class="form-label">Архив заказа (zip, rar, 7z)<span class="form-field-requared">*</span></label></span>
        <span class="form-input-field"><input data-required="required" type="file" name="zip" id="zip" title="Архив заказа" value="[[!+fi.zip]]" /></span><span class="error">[[!+fi.error.zip]]</span>
    </div>
     
        <br class="clr" />
     
        <div class="form-buttons">
            <input type="submit" value="Загрузить" />
        </div>
    </form>

    blockUI is a script pop-ups
    This my js-code:
    var t;
    progress = function(){
        $.ajax({
            url: '/assets/upload_progress.php',
            dataType: 'json',
            success: function(data){
                if(data.percent) {
                    $("#bar").progressbar({
                        value: Math.ceil(data.percent),
                    });
                    $('.ui-progressbar-value').text(data.percent+'%');
                }
            }
        });
    }
    $(document).ready(function() {
    $('#upload-hbook-form').submit(function() {
            $.blockUI({ message: '<h2>Отправляем...</h2><div id="progress"><div id="bar"></div></div>' });
            t = setInterval("progress()", 1000);
        });
    });
    

    And this my upload_progress.php:
    session_start();
    error_reporting(0);
    $percent = 0;
    $data = array();
    
    $progress_key = ini_get("session.upload_progress.prefix")."uploadfile";
    if(isset($_SESSION[$progress_key]) and is_array($_SESSION[$progress_key])) {
        $percent = ($_SESSION[$progress_key]['bytes_processed'] * 100 ) / $_SESSION[$progress_key]['content_length'];
        $percent = round($percent,2);
        $data = array(
             'percent' => $percent, 
             'content_length' => $_SESSION[$progress_key]['content_length'], 
             'bytes_processed' => $_SESSION[$progress_key]['bytes_processed']
    	);
        echo json_encode($data);
    } else
        echo json_encode(array('percent' => 'error_upload'));

    And on screen my php.ini session options. what am I doing wrong? $_SESSION[$progress_key] is null sad Php version is 5.4.4-1~lucid+1
      • 39706
      • 34 Posts
      Maybe someone show an example of your work on modx? Only for php 5.4
        • 39706
        • 34 Posts
        Ok. I realized what the problem is - nginx. Had to turn it off, because I do not know how to configure it to work. With Apache everything is working well