Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Форма обратной связи с файлами.

05.04.2013, 18:08
Redox

Зарегистрирован:
2007-05-29
Сообщений: 13

Здравствуйте!
Хочу сделать на сайте форму обратной связи с прикреплением нескольких файлов, например 4 штук. Но:
1. Не хочу использовать поле с типом множественная загрузка файлов по ряду причин.
2. Хочу сделать так, чтобы форма загрузки файлов была похожа на форму загрузки файлов в поле с типом множественная загрузка файлов, т.е. чтобы было одно поле для загрузки файла, а ниже кнопочка "Добавить ещё файл", при клике на которую появлялось бы ещё одно поле.
Что пробовал:
1. Сделал компонент с несколькими полями с типом файл со стандартной файловой системой, формате поля - пусто, не обязательно для заполнения.
В альтернативной форме добавления (дала по принципу формы добавления файлов для поля с типом "множественная загрузка файлов"):
Код:
<?=( $warnText ? "<div class='warnText'>$warnText</div>" : NULL )?>
<form name='adminForm' id='adminForm' enctype='multipart/form-data' method='post' action='<?= $SUB_FOLDER ?><?= $HTTP_ROOT_PATH ?>add.php'>
<div id='nc_moderate_form'>
<div class='nc_clear'></div>
<input name='admin_mode' type='hidden' value='<?= $admin_mode ?>' />
<?= $nc_core->token->get_input() ?>
<input name='catalogue' type='hidden' value='<?= $catalogue ?>' />
<input name='cc' type='hidden' value='<?= $cc ?>' />
<input name='sub' type='hidden' value='<?= $sub ?>' /><input name='posting' type='hidden' value='1' />
<input name='curPos' type='hidden' value='<?= $curPos ?>' />
<input name='f_Parent_Message_ID' type='hidden' value='<?= $f_Parent_Message_ID ?>' />
<?= nc_form_moderate('add', $admin_mode, 0, $systemTableID, $current_cc, (isset($f_Checked) ? $f_Checked : null), $f_Priority , $f_Keyword, $f_ncTitle, $f_ncKeywords, $f_ncDescription ) ?>
</div>

<div>Загрузите файлы :</div><div id='div_documents'><script>
var min_documents = 1;
var max_documents = 4;
var current_documents = 1;
function add_field_documents() {
var new_div = document.createElement('div');
new_div.innerHTML = "" +
"<div><input name='f_file"+current_documents+"' size='50' type='file' />"+
"</div>";
document.getElementById('div_documents').appendChild(new_div);
current_documents++;
if (max_documents && (current_documents >= max_documents)) {
document.getElementById('add_documents').innerHTML = '';
}
}
var i = 0;
do {
i++;
add_field_documents();
} while (i < min_documents);
</script></div><div id='add_documents'><a href='' onClick='add_field_documents(); return false;'>добавить еще файл</a></div><br />

<? if (!$AUTH_USER_ID && $current_cc['UseCaptcha'] && $MODULE_VARS['captcha']) { ?><?= nc_captcha_formfield() ?><br/><br/><?= NETCAT_MODERATION_CAPTCHA ?> (*):<br/><input type='text' name='nc_captcha_code' size='10'><br/><br/><? } ?>
<div><?= NETCAT_MODERATION_INFO_REQFIELDS ?></div><br/>
<?= nc_submit_button(NETCAT_MODERATION_BUTTON_ADD) ?>
</form>

Форма работает, поля появляются как надо. Но почему то прикрепляемые файлы не добавляются в объект.
При открытии этого объекта в админке, указанных файлов нет. Если использовать стандартную форму добавления объектов, то файлы добавляются нормально... но хотелось бы сделать более удобную и эстетическую форму.
Подскажите как это можно реализовать и в чём порблема.
Спасибо!
28.04.2013, 19:06
sparton
Шекера Евгений

Зарегистрирован:
2010-03-16
Сообщений: 141

проверьте генерируемое имя поля для загрузки файла,

если дадите ссылку - будет совсем чудесно.
198 196 2013-04-28 19:06:14 13000
Описание проекта