Ok, ich habe eine in Template-Funktion, die über Methode = "POST" gesendet werden. Aber ich kann das nicht normal einreichen, da dies alles ist, was ich möchte, und es ist bereits ein Tag oberhalb des Codes und dann unterhalb des Codes definiert, wobei das Formular geschlossen werden muss, das dort verbleiben muss. Da es keine Möglichkeit gibt, Formulare in Formularen zu verwenden, verwende ich Javascript, um ein Formular zu erstellen und es im Handumdrehen zu senden. Aber ich muss eine Kopie des Dateieingabeelements erhalten, das im document.forms.creator-Formular definiert ist. Ich benutze PHP und Javascript, um das zu erreichen, was ich jetzt habe, aber der cloneNode (true) bekommt das Array $ _FILES ['image'] nicht und setzt es auf das Array $ _FILES ['sigImg'] :(Need File Input Element geklont von 1 Formular in ein anderes über PHP und 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>';
Wie kann ich einen echten Klon der Datei-Eingabe definiert im php echo und legen sie sie in der Form, in der createFormAndSubmit() Funktion definiert erhalten ??
bitte jemand helfen ...
Nur um sicherzustellen, dass ich richtig bin zu verstehen, sind Sie wollen eine Datei auf den Server in einem Popup zu schreiben, sondern verweisen nach wie vor, dass die Datei von der Form der ursprünglichen Fensters? Wenn dies der Fall ist, würde einfach das Kind/Iframe das Post-Ziel sein, dann muss ein Skript zurückgegeben werden, um eine ID in ein verstecktes Feld und den Dateinamen in Ihrem Hauptformular anzuhängen. – Tracker1
Nein, ich möchte kein Popup. Ich möchte nur die innerhalb der createFormAndSubmit() - Funktion klonen und den Namen und die ID in: name = "sigImg" id = ändern "sigImgId" und wenn submitForm.submit(); get's heißt, sigImg sollte die $ _FILES ['sigImg'] aus der Bilddatei-Eingabe gesetzt haben. –
ein iframe wird nicht funktionieren, nachdem die Aktion ausgeführt wurde, bringt sie sie zurück auf die Seite, auf der sie sich befanden. Es muss einen Weg geben, um ein Dateieingabeelement zu klonen, so dass, wenn das geklonte Element übergeben wird, es das $ _FILES vom Original gesetzt hat. Ich brauche das, um in der Lage zu sein, die Dateigröße, MIME-Typ, etc. zu überprüfen. –