Да вы просто волшебник))) Как я только не пробовал и все было без успешно! После получения данных от сервера у меня формируются изображения и ссылки "Удалить фото" под каждым: Код (Text): if(puty_foto.foto_mini) // если от сервера получены данные (вывод echo ""; в файле обработчике) { $('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+puty_foto.foto_mini+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)">Удалить фото</a>'); // передаём данные в скрытые поля формы if ($('#foto1_mini').val() == "") {$('#foto1_mini').val(puty_foto.foto_mini); $('#foto1_big').val(puty_foto.foto_big);} else {if ($('#foto2_mini').val() == "") {$('#foto2_mini').val(puty_foto.foto_mini); $('#foto2_big').val(puty_foto.foto_big);} else {if ($('#foto3_mini').val() == "") {$('#foto3_mini').val(puty_foto.foto_mini); $('#foto3_big').val(puty_foto.foto_big);} else {if ($('#foto4_mini').val() == "") {$('#foto4_mini').val(puty_foto.foto_mini); $('#foto4_big').val(puty_foto.foto_big);} else {if ($('#foto5_mini').val() == "") {$('#foto5_mini').val(puty_foto.foto_mini); $('#foto5_big').val(puty_foto.foto_big);}}}}} } else{$('#status').text('Ошибка').addClass('text_z');} if ($('#foto1_mini').val() !== "" && $('#foto2_mini').val() !== "" && $('#foto3_mini').val() !== "" && $('#foto4_mini').val() !== "" && $('#foto5_mini').val() !== "") { $('#upload').hide(); /*прячем кнопку добавления файла*/} После получения всех 5-ти фоток и занесения их путей в скрытые поля формы, прячется кнопка "Добавить фото" Вот уже не один час думаю как сделать удаление этих фото... И никак не могу сообразить, даже не знаю с чего начать.
Со страницы? Получайте html фотки по id и вызываете у него .remove(); С сервера - получаете запрос на удаление и...удаляете файл. Добавлено спустя 1 минуту 15 секунд: Нет, просто почитай про динамическую типизацию и подводные камни, с ней связанные. Тут что в JS, что в PHP почти идентичная ситуация. Добавлено спустя 2 минуты 5 секунд: Или не знаешь, как организовать удаление само, для пользователя, куда кнопку повесить, мол, дизайнерский ход? Я бы под каждой фоткой/напротив нее, на ней самой в уголке, вывел бы красявую кнопочку с надписью "удалить" и однозначно намекающим крестиком/мусорным баком.
Сначала нужно удалить со страницы, а затем и папки. Как полученить html фотки по id? У меня под каждой фоткой расположена ссылка Код (Text): $('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+puty_foto.foto_mini+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)">Удалить фото</a>');
Только похвалил, и ты начинаешь тут же огорчать. Ну уж такие-то простые вещи спрашивать на форуме и несколько часов ждать ответ стыдновато...
Да, действительно, что то я видимо закипел уже)) Уже не первый день "трудюсь" над этим всем. Проблема в том, что у меня у всех фоток одинаковый id="files" Код (Text): <table align="center" cellpadding="0" cellspacing="0" border="0" class="text_c"><tr id="files"></tr></table>
Создал функцию, которая должна очистить пути до фото в скрытых полях с id="foto1_mini" и id="foto1_big". Код (Text): function delete(id_mini, id_big){ $("input#id_mini").empty(); $("input#id_big").empty();} И в ссылке "Удалить фото" добавил oclick: Код (Text): <a href="javascript:void(0)" onclick="delete(foto1_mini, foto1_big)">Удалить фото</a> Теперь весь код не работает, не говоря уже про удаление.
а зачем у функции аргументы если потом жестко кодированный селектор? ну и кстати если над аргументами одинаковое действие делается то можно оформить функцией с нулевым кол-вом аргументов и в цикле итерировать все аргументы вызова, выполняя над ними то самое единственное одинаковое действие.
Может я глупость составил, а не функцию, т.к. новичок в этом. В функции я пытался подставить нужные id полям inut для их очистки. Эти id должны передаваться в функцию при клике на Код (Text): <a href="javascript:void(0)" onclick="delete(foto1_mini, foto1_big)">Удалить фото</a>
айди это уникальный идентификатор (в рамках области видимости). у тебя не может быть инпута и при этом чего-то там еще (анкора, картинки, параграфа) с одинаковыми идентификатороми. следовательно не обязательно искать именно инпут с таким айди. достаточно просто искать элемент с таким айди. далее. в хтмл исходнике onclick="delete(foto1_mini, foto1_big)" будет обработано как подстановка значения переменных foto1_mini и foto1_big в аргументы вызова функции delete(). мне кажется тут речь идет не о переменных с такими именами, а о строках, описывающих идентификаторы удаляемых элементов. значит строки надо оформить как строки - onclick="delete('foto1_mini', 'foto1_big')" далее. a href= бла-бла-бла. а зачем анкором оформлять по сути интерактивный элемент интерфейса? онклик может быть практически у любого тега, описываемого консорциумом. для лучшей читаемости наверное лучше заменить на div или что-нибудь подобное. да хоть тот же button. еще далее. href с войдом тут видимо чтоб браузер не переходил по клику. ну так джаваскрипт работает чуть выше стандартного поведения элементов. при клике на ссылку выполняется переход по ссылке. если на клик навешено событие то сначала слушается ответ от обработчика этого события. если обработчик вернул допустимый ответ - совершается переход. если нет - не совершается. onclick="delete('...','...');return false" и мы давим переход по ссылке. кстати таким же return false'ом можно подавить отправку формы если хотим её предварительно обработать на допустимость значений. а если обработчик допустимости вернет true то браузер отправит форму. ну и личным опытом поделюсь. я не очень люблю когда в коде очень много инлайна вроде стилей вброшенных через атрибут style или скриптов вброшенных через onX. и уж тем более когда в этом onX еще и куча вызовов с кучей аргументов. если у нас создается какой-то набор из элементов (большая и маленькая превьюшка) и у них есть еще и кнопка удаления - я бы сделал какой-нибудь общий формат имени с контекстным суффиксом. foto1_big, foto1_min, foto1_del. по клике на del вызываем функцию delete() не передавая ей никаких аргументов ведь у нас внутри функции delete() будет доступен идентификатор элемента по которому прошел этот самый клик. от идентификатора отрезаем его _del-суффикс и удаляем два элемента которые имеют такой же префикс. вот так например.
Спасибо, пример отличный, но как мне это применить к скрытым полям input? Давайте я вкратце объясню вам суть работы моего скрипта. При клике на кнопку "Добавить фото" методом ajax файл отправляется в обработчик фото. Из обработчика приходит два пути до фото (маленького "foto_1mini" и большого "foto_1big"), при следующем клике ещё пара ("foto_2mini" и "foto_2big") и так до 5 раз. Эти пути до фото прописываются в Value 10-ти скрытых полей формы, id этих полей такие же как и имена переменных "foto_1mini", "foto_1big", "foto_2mini", "foto_2big". Отображение миниатюр на странице и запись в базу данных всех путей осуществляется уже из Value нужных полей. Код (Text): if ($('#foto1_mini').val() !== "") {$('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto1_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)" onclick="">Удалить фото</a>');} if ($('#foto2_mini').val() !== "") {$('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto2_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)" onclick="">Удалить фото</a>');} Поэтому, при клике на ссылку, нужно просто очистить Value нужных полей.
и в чем проблема? загрузилась страница - некоторый счетчик в нуле. добалвяется пара полей - скрытых или открытых это вообще не важно - в хтмл это будут обычные элементы которым можно дать идентификатора. делаем инкремент счетчика, создаем эту пару элементов с идентификаторами в которых текущее значение счетчика. и делаем третий элемент для удаления первых двух. на этот третий вешаем скрипт удалялки. сколько не сделай на автомате полей - у них у всех будут уникальные идентификаторы но которые сгруппированы по формату для удобной работы скрипта. кликнул по удалению - удаляшка прочитала идентификатор кнопки по которой ты кликаешь, отсекла общий префикс и к этому префиксу добавили пару разных суффиксов - вот мы уже можем дотянуться и до полей связанных с этой кнопкой удаления. тынц
Я просто не понимаю, зачем нужен счетчик. Поля не создаются автоматически и у них уже есть конкретный id Остаётся только повесить на каждую ссылку какой нибудь аргумент onclick=('foto1') другой ссылке onclick=('foto2') и передать его в функцию, а в ней уже: Код (Text): if (foto1) {$('#foto1_mini').val(''); $('#foto1_big').val('');} if (foto2) {$('#foto2_mini').val(''); $('#foto2_big').val('');} ... Я просто не могу правильно создать эту функцию
Код (Text): <input type="button" id="upload" class="knopka_poisk" value="Добавить фото"><span id="status"></span><table align="center" cellpadding="0" cellspacing="0" border="0" class="text_c"><tr id="files"></tr></table> <input type="hidden" name="foto1_mini" id="foto1_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto1_mini']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto2_mini" id="foto2_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto2_mini']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto3_mini" id="foto3_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto3_mini']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto4_mini" id="foto4_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto4_mini']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto5_mini" id="foto5_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto5_mini']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto1_big" id="foto1_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto1_big']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto2_big" id="foto2_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto2_big']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto3_big" id="foto3_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto3_big']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto4_big" id="foto4_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto4_big']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto5_big" id="foto5_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto5_big']) , ENT_QUOTES ) ?>"> И вывод самих миниатюр Код (Text): if ($('#foto1_mini').val() !== "" && $('#foto2_mini').val() !== "" && $('#foto3_mini').val() !== "" && $('#foto4_mini').val() !== "" && $('#foto5_mini').val() !== "") { $('#upload').hide(); /*прячем кнопку добавления файла*/} if ($('#foto1_mini').val() !== "") {$('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto1_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)">Удалить фото</a>');} if ($('#foto2_mini').val() !== "") {$('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto2_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)">Удалить фото</a>');} if ($('#foto3_mini').val() !== "") {$('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto3_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)">Удалить фото</a>');} if ($('#foto4_mini').val() !== "") {$('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto4_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)">Удалить фото</a>');} if ($('#foto5_mini').val() !== "") {$('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto5_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)">Удалить фото</a>');}
ну то есть по сути твой код отличается от моего только тем что ты жестко закодировал 5 полей. ну так дай своим анкерам айдишники как у меня - с _дэл на конце -, и скопируй мою функцию для удаления. мой подход ведь только совершенно не ограничивает кол-во полей - можно добавлять и удалять сколько влезет. а у тебя один и тот же код повторен пять раз. да, для разных объектов, но это же один и тот же код.
Не совсем понял это предложение и видимо не совсем понимаю Вашу функцию, видимо потому что "чайник" ещё) Подставил в Ваш пример поля https://jsfiddle.net/omu98xb3/4/ но поля не очищаются(
все работает. ты просто не знаешь какого результата ожидать. empty() что делает? а ты что хочешь? можно например вот так - https://jsfiddle.net/omu98xb3/5/ - оно итерирует суфиксы и к каждому элементу применяет два действия - покрасить красным и очистить значение. поскольку у дива не может быть значения - он красится красным. а у инпута есть значение - и он тоже красится красным но потом строка исчезает (если начать руками набивать текст то увидишь то он будет красным) но изначальная цель - очистка полей - выполняется. дальше сможешь?
А зачем это после функции: Код (Text): document.getElementById('foto1_del').addEventListener('click', del); document.getElementById('foto2_del').addEventListener('click', del); document.getElementById('foto3_del').addEventListener('click', del); Вставил в свой код, консоль браузера пишет: TypeError: document.getElementById(...) is null too much recursion Код (Text): if ($('#foto1_mini').val() !== "") {$('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto1_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><input type="button" id="foto1_del" class="knopka_ser" value="Удалить фото">');}
я программно навешиваю обработчик (del) события одинарного клика левой кнопкой мыши (click) на три элемента. это затем чтоб не писать onclick="del(this.id)" среди атрибутов тега. ну это сам смотри ковыряйся пока. если у меня будет время - накидаю тебе рабочий код. ты динамически добавляешь-удаляешь поля (текстовые) в которые человек вставляет ссылку на изображение и тут же показываешь ему превьюшку этого изображения. а по клику на кнопку удаления - нужно очистить поле и удалить превьюшки. я правильно понял твоё творение?
Ну да типа того, только вместо поля выбора файла кнопка "Добавить фото" Вот в принципе моё творение с использованием плагина http://ruseller.com/lessons.php?id=370&rub=37 Код (Text): <script type="text/javascript"> $(function(){ var btnUpload=$('#upload'); $('#upload').click(function(){ $(this).parent().find('input').click(); // имитация нажатия на обычное поле выбора файла }); // проверяем существует ли пути фото в скрытых полях if ($('#foto1_mini').val() !== "" && $('#foto2_mini').val() !== "" && $('#foto3_mini').val() !== "" && $('#foto4_mini').val() !== "" && $('#foto5_mini').val() !== "") { $('#upload').hide(); /*прячем кнопку добавления файла*/} if ($('#foto1_mini').val() !== "") {$('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto1_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><input type="button" id="foto1_del" class="knopka_ser" value="Удалить фото">');} if ($('#foto2_mini').val() !== "") {$('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto2_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)">Удалить фото</a>');} if ($('#foto3_mini').val() !== "") {$('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto3_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)">Удалить фото</a>');} if ($('#foto4_mini').val() !== "") {$('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto4_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)">Удалить фото</a>');} if ($('#foto5_mini').val() !== "") {$('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto5_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)">Удалить фото</a>');} new AjaxUpload(btnUpload, { action: '../podaty_obyavlenie/upload-file.php', // файл обработчик запросов name: 'foto1', // имя поля ввода данных onSubmit: function(file, ext){ if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){ $('#status').html('<br><span class="text_z">Формат фото должен быть: .jpg или .gif или .png!</span>'); // проверяем тип файла return false; } $('#upload').hide(); /*прячем кнопку добавления файла*/ $('#status').html('<strong>Загрузка фото, ждите...</strong><br><img src="http://www.pc01.ru/image/30.GIF">').addClass('text_с'); // выводим сообщение о загрузке }, onComplete: function(file, response){ // если сервер вернул какой либо ответ $('#upload').attr('value', 'Добавить ещё фото').show(); /*показываем кнопку добавления файла и меняем надпись*/ $('#status').text(''); // убираем сообщение о загрузке var puty_foto = jQuery.parseJSON(response); // разбираем полученные данные JSON от сервера if(puty_foto.foto_mini) // если от сервера получены данные (вывод echo ""; в файле обработчике) { // передаём данные в скрытые поля формы if ($('#foto1_mini').val() == "") {$('#foto1_mini').val(puty_foto.foto_mini); $('#foto1_big').val(puty_foto.foto_big); $('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto1_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><input type="button" id="foto1_del" class="knopka_ser" value="Удалить фото">');} else {if ($('#foto2_mini').val() == "") {$('#foto2_mini').val(puty_foto.foto_mini); $('#foto2_big').val(puty_foto.foto_big); $('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto2_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)">Удалить фото</a>');} else {if ($('#foto3_mini').val() == "") {$('#foto3_mini').val(puty_foto.foto_mini); $('#foto3_big').val(puty_foto.foto_big); $('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto3_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)">Удалить фото</a>');} else {if ($('#foto4_mini').val() == "") {$('#foto4_mini').val(puty_foto.foto_mini); $('#foto4_big').val(puty_foto.foto_big); $('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto4_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)">Удалить фото</a>');} else {if ($('#foto5_mini').val() == "") {$('#foto5_mini').val(puty_foto.foto_mini); $('#foto5_big').val(puty_foto.foto_big); $('<td align="center" valign="bottom"></td>').appendTo('#files').html('<img src="'+$('#foto5_mini').val()+'" alt="Фото" style="border:3px solid #FFFFFF; margin:13px 6px 7px 6px; box-shadow:0px 2px 4px 2px #A3A3A3;"><br><a href="javascript:void(0)">Удалить фото</a>');}}}}} if ($('#foto1_mini').val() !== "" && $('#foto2_mini').val() !== "" && $('#foto3_mini').val() !== "" && $('#foto4_mini').val() !== "" && $('#foto5_mini').val() !== "") { $('#upload').hide(); /*прячем кнопку добавления файла*/} } } }); var suffixes = ['mini', 'big', 'del']; function del() { var prefix = (/^(foto\d+\_)del$/.exec(this.id))[1]; for (var i in suffixes) { var elid = prefix + suffixes[i]; $('#'+elid).val(''); //document.getElementById(elid).style.color = 'red'; } } document.getElementById('foto1_del').addEventListener('click', del); }); </script> Вот сам HTML Код (Text): <input type="button" id="upload" class="knopka_poisk" value="Добавить фото"><span id="status"></span><table align="center" cellpadding="0" cellspacing="0" border="0" class="text_c"><tr id="files"></tr></table> <input type="hidden" name="foto1_mini" id="foto1_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto1_mini']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto2_mini" id="foto2_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto2_mini']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto3_mini" id="foto3_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto3_mini']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto4_mini" id="foto4_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto4_mini']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto5_mini" id="foto5_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto5_mini']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto1_big" id="foto1_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto1_big']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto2_big" id="foto2_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto2_big']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto3_big" id="foto3_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto3_big']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto4_big" id="foto4_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto4_big']) , ENT_QUOTES ) ?>"> <input type="hidden" name="foto5_big" id="foto5_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto5_big']) , ENT_QUOTES ) ?>">
ну и ты понимаешь этот алгоритм? плюсы-минусы в нем видишь? я вот не люблю такую кашу, но по ссылке прошел - автор исходника тоже тяп ляп учит.
Ну если бы я умел, я бы сам полностью составил этот скрипт. Если честно, я вообще не люблю использовать разные чьи то плагины, в них очень сложно разобраться и настроить по своему, но это более подходящее что я нашел И кстати когда вставил функцию удаления в свой код, она перестала работать.