Хранение данных формы в сеансе javascript

Мне было интересно, можно ли хранить данные формы, такие как «заголовок» и «описание», в сеансе javascript?

Я использую сценарий загрузки, чтобы иметь флэш-загрузчик, но сценарий не передает заголовок и описание. Это мой код на данный момент;

<script type="text/javascript">

    jQuery(document).ready(function() {
        title = $("input#title").val();
        description = $("textarea#description").val();

        $('#uploadImage').uploadify({
            'uploader': 'flash/uploadify.swf',
            'script': 'process/process_uploaded_image.php',
            'folder': 'submitted/pictures',
            'cancelImg': 'images/cancel.png',
            'queueID'        : 'fileQueueImages',
            'auto'           : false,
            'multi'          : false,
            'fileExt' : '*.jpg;*.png;*.gif;*.jpeg;*.JPG',
            'fileDesc': 'Images ONLY (.jpg, .png, .gif, .jpeg, .JPG)',
            'buttonText' : 'BROWSE',
            'scriptData': {'title':title,'description':description,'user':'<?php echo $usr["id"] ?>'},
            'sizeLimit' : '2097152', //2MB
            //'buttonImg' : '/components/com_mm/assets/images/button-upload-images.png',
            //'width' : '218',
            //'height' : '66',
            onAllComplete: function() {
              //$('#uploadedImage').load(location.href+" #uploadedImages>*","");
              //location.reload(); //uncomment this line if youw ant to refresh the whole page instead of just the #allfiles div
                 location.href = "upload-pics-thanks.php";
            },
            //onComplete: function(a, b, c, d, e){
            //     if (d !== '1')
            //           alert(d);
            //},
            onError: function (a, b, c, d) {
                alert("Error: "+d.type+"      Info: "+d.info);
            },
            onSelect: function () {

            }   
        });
    });
</script>

person doubleplusgood    schedule 22.12.2009    source источник


Ответы (3)


Ознакомьтесь с этим ответом SO, и в случае, если это не сработает...

Вы видели этот пост на форумах Uploadify? Может быть, это укажет вам правильное направление и ух ты, столько спама на этих форумах.

http://www.uploadify.com/forum/viewtopic.php?f=7&t=3120

person Mottie    schedule 22.12.2009

JavaScript не имеет сессий. Вероятно, лучший способ — отправить заголовок и описание через AJAX на сервер.

person Jan Hančič    schedule 22.12.2009

Если вы используете последнюю версию uploadify, данные в scriptData будут переданы в script как переменная _POST или _GET (теперь по умолчанию POST). Итак, в вашем php-файле вы можете получить заголовок и описание, используя:

$_POST['title']
$_POST['description']
$_POST['user']

Просто рассмотрите то же самое с обработкой отправки формы, только она возникла из flashify uploadify. Также обратите внимание, что флэш-память не передает текущие файлы cookie, которые в настоящее время существуют в браузере. Если ваш php использует сеанс, хранящийся в файлах cookie, его необходимо настроить, чтобы вместо этого читать его из $_POST.

Я использую CodeIgniter, и на форуме CodeIgniter есть патч для этого. Если вы просто используете сеанс сборки в PHP, вы можете передать PHPSESSID внутри scriptData, а затем в стороне script PHP повторно инициализировать сеанс, используя переданные данные. На него был дан ответ на другой вопрос в stackoverflow, просто найдите его с помощью ключевого слова uploadify.

person Donny Kurnia    schedule 17.01.2010