I created a form for image uploading. This form also includes a tag to add information about the image being uploaded. I need the text from the tag to be sent over to a page “savetofile.php” whenever ‘Upload’ button is clicked.
Currently the picture uploading works, the picture information is sent correctly, but I can’t get the text from the tag on the “savetofile.php” page.
Form
JavaScript
x
<form action="savetofile.php" enctype="multipart/form-data" id="form1" method="post">
<div>
<label for="fileToUpload">Take or select photo(s)</label><br/>
<input accept="image/*" capture id="fileToUpload" name="fileToUpload" onchange="fileSelected();"
type="file"/>
</div>
<div>
<br><br>
<label for="notes">Notes:</label>
<textarea cols="50" id="notes" maxlength="2000" name="notes" placeholder="Please enter any additional information here"
rows="4" onchange="this.form.submit()"></textarea>
<br><br>
</div>
<div id="details"></div>
<div>
<input onclick="uploadFile()" type="button" value="Upload"/>
</div>
<div id="progress"></div>
</form>
savetofile.php
JavaScript
$text = $_POST['notes'];
_log('text: ' .$text);
uploadFile()
JavaScript
function uploadFile() {
var fd = new FormData();
var count = document.getElementById('fileToUpload').files.length;
for (var index = 0; index < count; index++) {
var file = document.getElementById('fileToUpload').files[index];
fd.append('myFile', file);
}
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "savetofile.php");
xhr.send(fd);
}
Current output:
JavaScript
Undefined index: notes
text:
Advertisement
Answer
Seems like you haven’t append notes field value. Add this after for loop,
JavaScript
fd.append('notes', document.getElementById('notes').value);