проблема при отправке данных формы с помощью Uploadify - PullRequest
2 голосов
/ 06 апреля 2011

Я пытаюсь отправить дополнительные данные формы с помощью uploadify, используя scriptData, но он ничего не отправляет в серверный скрипт PHP. Может кто-нибудь помочь мне с этим, пожалуйста? Вот что я пытаюсь ..

Javascript:

<script type="text/javascript">
$(document).ready(function() {
    $("#fileUpload").fileUpload({
        'uploader': 'uploadify/uploader.swf',
        'cancelImg': 'uploadify/cancel.png',
        'script': 'uploadify/upload.php',
        'folder': 'files',
        'multi': false,
        'displayData': 'speed',
        'scriptData' : {'name' : $('#name').val()},
        onComplete: function (evt, queueID, fileObj, response, data) {
            alert("Successfully uploaded: "+response);
        }
    });
});
</script>

HTML:

Name: <input name="name" id="name" /><br />
<div id="fileUpload">You have a problem with your javascript</div>
<a href="javascript:$('#fileUpload').fileUploadStart()">Start Upload</a> |  <a href="javascript:$('#fileUpload').fileUploadClearQueue()">Clear Queue</a>

upload.php

(я пробовал оба метода POST и GET, ни один не работает).

$name = $_GET['name'];
or
$name = $_POST['name'];

Я буду очень благодарен за вашу помощь.

Ответы [ 2 ]

1 голос
/ 12 мая 2011

Я знаю, что уже немного поздно, но я пытался заставить это работать самостоятельно и пытался сделать то же самое, что и вы.

Вы не можете использовать селектор jQuery, чтобы получить значение «Имя» в начальной настройке Uploadify:

'scriptData' : {'name' : $('#name').val()}

Это проблема времени. Во время оценки селектора jQuery страница только что закончила загрузку, и ваше текстовое поле «Имя» (я полагаю) пусто. Он не переоценивается при загрузке.

Однако вы можете обновить данные сценария в любое время, в том числе непосредственно перед загрузкой:

$('#myUpload').uploadifySettings('scriptData', {'Id':$('#IdTextBox').val() });
$('#myUpload').uploadifyUpload();

Таким образом, вы можете извлечь данные формы и передать их вместе с загрузкой. Это простейший пример, он усложняется несколькими загрузками файлов, но этого должно быть достаточно, чтобы кто-то начал.

0 голосов
/ 06 апреля 2011

Я думаю, что вы забыли 'fileDataName' : 'photo'

Также у вас нет опции 'method' : 'post', вы можете получить доступ к scrpitData как GET или POST в соответствии с ним.

А на сервере вы можете получить доступ к файлам по $_FILES['photo'];

Также вам нужно проверить, что эти файлы существуют в их относительном пути.

'uploader': 'uploadify/uploader.swf',
'cancelImg': 'uploadify/cancel.png',
'script': 'uploadify/upload.php',
...