Хорошо, у меня есть функция шаблона, которая передается через метод = «POST». Но я не могу представить это нормально, так как это все, что я хочу представить, и уже есть тег, определенный над кодом, а не ниже кода, закрытие формы с этим должно оставаться там. Поскольку в формах нет способов иметь формы, я использую Javascript для создания формы и отправки ее на лету. Но мне нужно получить копию элемента ввода файла, определенного в форме document.forms.creator. Я использую PHP и Javascript для выполнения того, что у меня есть сейчас, но cloneNode (true) не получает массив $ _FILES ['image'] и не устанавливает его в массив $ _FILES ['sigImg'] :(Необходимый элемент ввода данных, клонированный из 1-й формы в другую с помощью PHP и Javascript
echo '<tr><td colspan="2"><a href="#" name="sig' . $user_info['id'] . '"></a><center><b>Signature Image Rotator</b></center><br /><center>
Add Image: <input type="file" size="48" id="imagefile" name="image" /> <input type="button" value="Upload" onclick="createFormAndSubmit()"></center>';
echo '
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
//helper function to create the form
function getNewSubmitForm(){
var submitForm = document.createElement("FORM");
document.body.appendChild(submitForm);
submitForm.enctype = "multipart/form-data";
submitForm.method = "POST";
return submitForm;
}
//function that creates the form, clones <input type="file" name="image">,
//and then submits it
function createFormAndSubmit(){
var submitForm = getNewSubmitForm();
var element = document.getElementById("imagefile");
element = element.cloneNode(true);
element.id = \'sigImgId\'; //<- ID Assignment
element.name = \'sigImg\'; //<- NAME Assignment
submitForm.appendChild(element);
submitForm.action= "', $scripturl, '?action=sigimages;sa=upload";
submitForm.submit();
}
// ]]></script></td></tr>';
Как я могу получить реальный клон входного файла, определенного в PHP эхо и поместить его в форме, определенной в функции createFormAndSubmit() ??
Пожалуйста, кто-нибудь помочь ...
Просто, чтобы убедиться, что я правильно понять, вы желаете, чтобы отправить файлы на сервер во всплывающем окне, но по-прежнему ссылаться на этот файл из формы исходного окна? Если это так, просто нужно, чтобы child/iframe был пост-объектом, затем возвращайте сценарий для добавления идентификатора в скрытое поле и имя файла в вашей основной форме. – Tracker1
Нет, не нужно всплывающее окно. Просто хочу клонировать внутри функции createFormAndSubmit() и изменить имя и идентификатор на: name = "sigImg" id = «sigImgId» и когда submitForm.submit(); get's, sigImg должен был установить $ _FILES ['sigImg'] из ввода файла изображения. – 2009-05-17 06:25:51
iframe не будет работать после того, как действие будет выполнено, оно вернет их обратно на страницу, на которой они были. Должен быть способ клонирования элемента ввода файла, чтобы при отправке клонированного элемента он установил $ _FILES из оригинала. Мне нужно это, чтобы иметь возможность проверять размер файла, тип mime и т. Д. – 2009-05-17 06:34:16