У меня есть HTML- form
для загрузки изображений и ответов на вопросы опроса. Я хочу сделать так, чтобы после выбора изображения содержимое формы менялось, чтобы стать первым вопросом, после чего я отвечаю, что содержимое становится вторым вопросом и т.д.
Сейчас у меня есть ответы, сохраненные в переменных JavaScript, но я не знаю, как отправить эти переменные и изображение на серверную базу данных.
Вот мой файл layout.erb
, который содержит form
. JavaScript в этом фрагменте предназначен только для предварительного просмотра загруженного изображения:
<form action="upload_image" method="post" enctype="multipart/form-data" accept-charset="utf-8">
<div class="form_item">
<p class="question">
<img id="upload_preview" style="width: 200px; height: 200px;" />
<input id="upload_image" type="file" name="my_photo" onchange="PreviewImage();" />
<script type="text/javascript">
function PreviewImage() {
var oFReader = new FileReader();
oFReader.readAsDataURL(document.getElementById("upload_image").files[0]);
oFReader.onload = function (oFREvent) {
document.getElementById("upload_preview").src = oFREvent.target.result;
// document.getElementById("upload_image").disabled = true
}; // DONE: function (oFREvent)
}; // DONE: function PreviewImage()
</script>
</p>
<p class="question">Enter name here<input type="text" name="text_name" /></p>
<button type="button" id="next_question">Next</button>
</div>
</form>
После того, как я p.question
на следующую кнопку, содержимое p.question
изменится на второй вопрос, который имеет варианты "A", "B", "C", "D". Каждый из них находится в <p>
(например, <p class="answer">a</p>
).
У моей серверной базы данных есть столбцы image_path
, text_name
и second_question
. Второй элемент, text_name
- это текст, который пользователь вводит в текст <input type="text" name="text_name"/>
.
Как сделать так, чтобы пользователь мог отправить в базу данных строку, содержащую данные image_path
, text_name
и second_question
?
Обычно вам необходимо передать данные файла через другой язык, который может записывать файлы на сервер, например, PHP. Для этого есть много готовых библиотек, нет необходимости изобретать велосипед.
Самый открытый и полезный, который я нашел, - это демо и его источник.
text_name
иsecond_question
.