Вставка нескольких изображений и возврат назад по кнопке браузера
Нажимаю "Добавить еще изображение", выбираю файл - и так три раза подряд. Потом нажимаю кнопку "Загрузить". Все нармально.
Теперь пытаюсь вернуться назад, нажимаю кнопку браузера назад. И вот проблема, надо повторно опять добавлять изображения. Т.е. вернуться назад по кнопе браузера не получается. :cray: Как решить это? Подскажите пожалуйста (код ниже). Это глюк браузера (opera) или не совсем правильный код? <?php // // JavaScript. // echo '<script> function insert() { var newspan = document.createElement("span"); str = \'<table width="100%" style="margin-top: 2px; margin-bottom: 2px;" align="left" cellspacing="0" cellpadding="0" border="0">\'; str += \'<tr>\'; str += \'<td>\'; str += \'<input type="file" size="70" name="download_image[]">\'; str += \'</td>\'; str += \'</tr>\'; str += \'</table>\'; newspan.innerHTML = str; list.appendChild(newspan); } </script>'; // Форма. echo '<form method="post" enctype="multipart/form-data" name="file_edit_form" action="http://127.0.0.1/index.php?action=qwerty">'; echo '<div id="list">'; // Вставить сюда. echo '</div>'; echo '<a onclick="insert();">'; echo 'Добавить еще изображение'; echo '</a>'; echo '<br>'; echo '<input type="submit" value="Загрузить" name="submit_form" />'; echo '</form>'; ?> |
Цитата:
|
Вложений: 1
Цитата:
Когда вставляешь 10-ть изображений 640x480, а одно изображение не 640х480 - а больше. Выводится сообщение о ошибке и кнопка вернуться назад: echo '<a href="javascript:history.back()">Назад</a>'; Возврат назад происходит, но изображения приходиться вставлять заново. Для пользователя это не очень удобно. Эти кусочки кода из моего пректа. Посоветуйте, как, что (хочу, чтобы пользователю было удобно)... Если кому интересно. Код с ограничением по количеству вставляемых изображений, здесь (как делал я): http://forum.php.su/topic.php?forum=60&topic=6879 |
А вот так. Поле file поле особое, это в textarea браузер может подставить ранее введенный текст, а в поле file нет, у него свойство value между прочим и то только для чтения.
Сбрасывайте то поле (если их несколько), в которое выбрано не удовлетворяющее условию, или отправляйте Ajax только те, что отвечают условию, если поле multiple, или распределяйте обязанности между клиентом и сервером, серверу ведь все равно проверять это вновь, если ошибки, то те, что ОК запомнить временно, вернуть ошибку, как все ОК, в каталог. Заставить браузер поступать так как вы хотите - забудьте. |
У меня форма, а там есть кнопка отправить, после нажатия на кнопку выполняется другой файл php (action). А получится сделать так! Нажимаем на кнопку отправить, вызывается js и проверяет $_FILES, если ок, выполняется другой файл php. Иначе показать окно alert.
П.С. Блин, не складываютcя другие моменты - не подходит такой вариант. Просто, для интереса, с кнопкой отправить, можно сделать изврат? |
Цитата:
Цитата:
Кроме варианта сервер->клиент (а сервер просто обязан проверять, пофигу что там было на клиенте), я еще говорил о двух чисто клиентских решениях, в зависимости от того, что за поле/поля у формы. Цитата:
|
Блин. :stop: Сдаюсь.
Я не знаю возможностей JS, поэтому возникают куча проблем, как можно, а как нельзя. Я наверное откажусь от js, а вставку изображений напишу полностью на PHP, плюс там нет этой проблемы с возвратом назад. Хотел как лучше, а получилось как всегда. :thanks: Сделаю так (вставить изображений можно 7, и пепец...): for ($x=0; $x<7; $x++) { echo '<input type="file" size="75" name="download[]" title="' . $txt['text_files_info'] . '">'; } Если есть другие варианты - напишите их здесь. Наверное, тема закрывается... |
Цитата:
|
Цитата:
Все ожидал, но это Цитата:
П.С. Попробывал JS+PHP - не получилось (проблема с возвратом назад), вернулся полностью на PHP (не совсем удобно)... Если есть возможность, предложите свой вариант js+php для загрузки изображений (файлов) на сервер (клиентская часть). Пример бы на js+php... |
Если Пример бы на js+php, то Ajax, я говорил об этом.
|
Часовой пояс GMT +3, время: 07:26. |