За последние 24 часа нас посетили 17436 программистов и 1712 роботов. Сейчас ищет 1601 программист ...

Получить переменную из файла php

Тема в разделе "JavaScript и AJAX", создана пользователем segazav, 12 май 2015.

  1. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    != попробуй заменить на !==
     
  2. segazav

    segazav Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    48
    Симпатии:
    0
    Да вы просто волшебник))) Как я только не пробовал и все было без успешно!

    После получения данных от сервера у меня формируются изображения и ссылки "Удалить фото" под каждым:
    Код (Text):
    1. if(puty_foto.foto_mini) // если от сервера получены данные (вывод echo ""; в файле обработчике)
    2. {
    3. $('<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>');
    4. // передаём данные в скрытые поля формы
    5. if ($('#foto1_mini').val() == "") {$('#foto1_mini').val(puty_foto.foto_mini); $('#foto1_big').val(puty_foto.foto_big);}
    6. else {if ($('#foto2_mini').val() == "") {$('#foto2_mini').val(puty_foto.foto_mini); $('#foto2_big').val(puty_foto.foto_big);}
    7. else {if ($('#foto3_mini').val() == "") {$('#foto3_mini').val(puty_foto.foto_mini); $('#foto3_big').val(puty_foto.foto_big);}
    8. else {if ($('#foto4_mini').val() == "") {$('#foto4_mini').val(puty_foto.foto_mini); $('#foto4_big').val(puty_foto.foto_big);}
    9. else {if ($('#foto5_mini').val() == "") {$('#foto5_mini').val(puty_foto.foto_mini); $('#foto5_big').val(puty_foto.foto_big);}}}}}
    10. }
    11. else{$('#status').text('Ошибка').addClass('text_z');}
    12. if ($('#foto1_mini').val() !== "" && $('#foto2_mini').val() !== "" && $('#foto3_mini').val() !== "" && $('#foto4_mini').val() !== "" && $('#foto5_mini').val() !== "") { $('#upload').hide(); /*прячем кнопку добавления файла*/}
    После получения всех 5-ти фоток и занесения их путей в скрытые поля формы, прячется кнопка "Добавить фото"

    Вот уже не один час думаю как сделать удаление этих фото... И никак не могу сообразить, даже не знаю с чего начать.
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Со страницы? Получайте html фотки по id и вызываете у него .remove();

    С сервера - получаете запрос на удаление и...удаляете файл.

    Добавлено спустя 1 минуту 15 секунд:
    Нет, просто почитай про динамическую типизацию и подводные камни, с ней связанные. Тут что в JS, что в PHP почти идентичная ситуация.

    Добавлено спустя 2 минуты 5 секунд:
    Или не знаешь, как организовать удаление само, для пользователя, куда кнопку повесить, мол, дизайнерский ход? Я бы под каждой фоткой/напротив нее, на ней самой в уголке, вывел бы красявую кнопочку с надписью "удалить" и однозначно намекающим крестиком/мусорным баком.
     
  4. segazav

    segazav Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    48
    Симпатии:
    0
    Сначала нужно удалить со страницы, а затем и папки.
    Как полученить html фотки по id?
    У меня под каждой фоткой расположена ссылка
    Код (Text):
    1. $('<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>');
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Только похвалил, и ты начинаешь тут же огорчать. Ну уж такие-то простые вещи спрашивать на форуме и несколько часов ждать ответ стыдновато...
     
  6. segazav

    segazav Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    48
    Симпатии:
    0
    Да, действительно, что то я видимо закипел уже)) Уже не первый день "трудюсь" над этим всем.
    Проблема в том, что у меня у всех фоток одинаковый id="files"
    Код (Text):
    1. <table align="center" cellpadding="0" cellspacing="0" border="0" class="text_c"><tr id="files"></tr></table>
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Читаем тут, делаем выводы касательно своих ошибок.
     
  8. segazav

    segazav Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    48
    Симпатии:
    0
    Создал функцию, которая должна очистить пути до фото в скрытых полях с id="foto1_mini" и id="foto1_big".
    Код (Text):
    1. function delete(id_mini, id_big){
    2. $("input#id_mini").empty();
    3. $("input#id_big").empty();}
    И в ссылке "Удалить фото" добавил oclick:
    Код (Text):
    1. <a href="javascript:void(0)" onclick="delete(foto1_mini, foto1_big)">Удалить фото</a>
    Теперь весь код не работает, не говоря уже про удаление.
     
  9. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а зачем у функции аргументы если потом жестко кодированный селектор? ну и кстати если над аргументами одинаковое действие делается то можно оформить функцией с нулевым кол-вом аргументов и в цикле итерировать все аргументы вызова, выполняя над ними то самое единственное одинаковое действие.
     
  10. segazav

    segazav Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    48
    Симпатии:
    0
    Может я глупость составил, а не функцию, т.к. новичок в этом.
    В функции я пытался подставить нужные id полям inut для их очистки. Эти id должны передаваться в функцию при клике на
    Код (Text):
    1. <a href="javascript:void(0)" onclick="delete(foto1_mini, foto1_big)">Удалить фото</a>
     
  11. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    айди это уникальный идентификатор (в рамках области видимости). у тебя не может быть инпута и при этом чего-то там еще (анкора, картинки, параграфа) с одинаковыми идентификатороми. следовательно не обязательно искать именно инпут с таким айди. достаточно просто искать элемент с таким айди. далее.
    в хтмл исходнике 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-суффикс и удаляем два элемента которые имеют такой же префикс. вот так например.
     
  12. segazav

    segazav Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    48
    Симпатии:
    0
    Спасибо, пример отличный, но как мне это применить к скрытым полям input?
    Давайте я вкратце объясню вам суть работы моего скрипта.
    При клике на кнопку "Добавить фото" методом ajax файл отправляется в обработчик фото.
    Из обработчика приходит два пути до фото (маленького "foto_1mini" и большого "foto_1big"), при следующем клике ещё пара ("foto_2mini" и "foto_2big") и так до 5 раз.
    Эти пути до фото прописываются в Value 10-ти скрытых полей формы, id этих полей такие же как и имена переменных "foto_1mini", "foto_1big", "foto_2mini", "foto_2big".
    Отображение миниатюр на странице и запись в базу данных всех путей осуществляется уже из Value нужных полей.
    Код (Text):
    1. 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>');}
    2. 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 нужных полей.
     
  13. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    и в чем проблема? загрузилась страница - некоторый счетчик в нуле.
    добалвяется пара полей - скрытых или открытых это вообще не важно - в хтмл это будут обычные элементы которым можно дать идентификатора. делаем инкремент счетчика, создаем эту пару элементов с идентификаторами в которых текущее значение счетчика. и делаем третий элемент для удаления первых двух. на этот третий вешаем скрипт удалялки. сколько не сделай на автомате полей - у них у всех будут уникальные идентификаторы но которые сгруппированы по формату для удобной работы скрипта. кликнул по удалению - удаляшка прочитала идентификатор кнопки по которой ты кликаешь, отсекла общий префикс и к этому префиксу добавили пару разных суффиксов - вот мы уже можем дотянуться и до полей связанных с этой кнопкой удаления.

    тынц
     
  14. segazav

    segazav Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    48
    Симпатии:
    0
    Я просто не понимаю, зачем нужен счетчик.
    Поля не создаются автоматически и у них уже есть конкретный id
    Остаётся только повесить на каждую ссылку какой нибудь аргумент onclick=('foto1') другой ссылке onclick=('foto2') и передать его в функцию, а в ней уже:
    Код (Text):
    1. if (foto1) {$('#foto1_mini').val(''); $('#foto1_big').val('');}
    2. if (foto2) {$('#foto2_mini').val(''); $('#foto2_big').val('');}
    3. ...
    Я просто не могу правильно создать эту функцию
     
  15. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    тебя не затруднит показать исходник формы с которым работать надо?
     
  16. segazav

    segazav Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    48
    Симпатии:
    0
    Код (Text):
    1. <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>
    2.                 <input type="hidden" name="foto1_mini" id="foto1_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto1_mini']) , ENT_QUOTES ) ?>">
    3.                 <input type="hidden" name="foto2_mini" id="foto2_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto2_mini']) , ENT_QUOTES ) ?>">
    4.                 <input type="hidden" name="foto3_mini" id="foto3_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto3_mini']) , ENT_QUOTES ) ?>">
    5.                 <input type="hidden" name="foto4_mini" id="foto4_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto4_mini']) , ENT_QUOTES ) ?>">
    6.                 <input type="hidden" name="foto5_mini" id="foto5_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto5_mini']) , ENT_QUOTES ) ?>">
    7.                 <input type="hidden" name="foto1_big" id="foto1_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto1_big']) , ENT_QUOTES ) ?>">
    8.                 <input type="hidden" name="foto2_big" id="foto2_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto2_big']) , ENT_QUOTES ) ?>">
    9.                 <input type="hidden" name="foto3_big" id="foto3_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto3_big']) , ENT_QUOTES ) ?>">
    10.                 <input type="hidden" name="foto4_big" id="foto4_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto4_big']) , ENT_QUOTES ) ?>">
    11.                 <input type="hidden" name="foto5_big" id="foto5_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto5_big']) , ENT_QUOTES ) ?>">
    И вывод самих миниатюр
    Код (Text):
    1. if ($('#foto1_mini').val() !== "" && $('#foto2_mini').val() !== "" && $('#foto3_mini').val() !== "" && $('#foto4_mini').val() !== "" && $('#foto5_mini').val() !== "") { $('#upload').hide(); /*прячем кнопку добавления файла*/}
    2.  
    3. 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>');}
    4. 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>');}
    5. 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>');}
    6. 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>');}
    7. 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>');}
     
  17. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну то есть по сути твой код отличается от моего только тем что ты жестко закодировал 5 полей. ну так дай своим анкерам айдишники как у меня - с _дэл на конце -, и скопируй мою функцию для удаления. мой подход ведь только совершенно не ограничивает кол-во полей - можно добавлять и удалять сколько влезет. а у тебя один и тот же код повторен пять раз. да, для разных объектов, но это же один и тот же код.
     
  18. segazav

    segazav Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    48
    Симпатии:
    0
    Не совсем понял это предложение и видимо не совсем понимаю Вашу функцию, видимо потому что "чайник" ещё)
    Подставил в Ваш пример поля https://jsfiddle.net/omu98xb3/4/ но поля не очищаются(
     
  19. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    все работает. ты просто не знаешь какого результата ожидать. empty() что делает? а ты что хочешь? можно например вот так - https://jsfiddle.net/omu98xb3/5/ - оно итерирует суфиксы и к каждому элементу применяет два действия - покрасить красным и очистить значение. поскольку у дива не может быть значения - он красится красным. а у инпута есть значение - и он тоже красится красным но потом строка исчезает (если начать руками набивать текст то увидишь то он будет красным) но изначальная цель - очистка полей - выполняется. дальше сможешь?
     
  20. segazav

    segazav Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    48
    Симпатии:
    0
    А зачем это после функции:
    Код (Text):
    1. document.getElementById('foto1_del').addEventListener('click', del);
    2. document.getElementById('foto2_del').addEventListener('click', del);
    3. document.getElementById('foto3_del').addEventListener('click', del);
    Вставил в свой код, консоль браузера пишет:
    TypeError: document.getElementById(...) is null
    too much recursion

    Код (Text):
    1. 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="Удалить фото">');}
     
  21. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    я программно навешиваю обработчик (del) события одинарного клика левой кнопкой мыши (click) на три элемента. это затем чтоб не писать onclick="del(this.id)" среди атрибутов тега.

    ну это сам смотри ковыряйся пока. если у меня будет время - накидаю тебе рабочий код. ты динамически добавляешь-удаляешь поля (текстовые) в которые человек вставляет ссылку на изображение и тут же показываешь ему превьюшку этого изображения. а по клику на кнопку удаления - нужно очистить поле и удалить превьюшки. я правильно понял твоё творение?
     
  22. segazav

    segazav Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    48
    Симпатии:
    0
    Ну да типа того, только вместо поля выбора файла кнопка "Добавить фото"
    Вот в принципе моё творение с использованием плагина http://ruseller.com/lessons.php?id=370&rub=37
    Код (Text):
    1. <script type="text/javascript">
    2. $(function(){
    3. var btnUpload=$('#upload');
    4. $('#upload').click(function(){
    5. $(this).parent().find('input').click(); // имитация нажатия на обычное поле выбора файла
    6. });
    7. // проверяем существует ли пути фото в скрытых полях
    8. if ($('#foto1_mini').val() !== "" && $('#foto2_mini').val() !== "" && $('#foto3_mini').val() !== "" && $('#foto4_mini').val() !== "" && $('#foto5_mini').val() !== "") { $('#upload').hide(); /*прячем кнопку добавления файла*/}
    9.  
    10. 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="Удалить фото">');}
    11. 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>');}
    12. 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>');}
    13. 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>');}
    14. 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>');}
    15. new AjaxUpload(btnUpload, {
    16. action: '../podaty_obyavlenie/upload-file.php', // файл обработчик запросов
    17. name: 'foto1', // имя поля ввода данных
    18. onSubmit: function(file, ext){
    19. if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){
    20. $('#status').html('<br><span class="text_z">Формат фото должен быть: .jpg или .gif или .png!</span>'); // проверяем тип файла
    21. return false;
    22. }
    23. $('#upload').hide(); /*прячем кнопку добавления файла*/
    24. $('#status').html('<strong>Загрузка фото, ждите...</strong><br><img src="http://www.pc01.ru/image/30.GIF">').addClass('text_с'); // выводим сообщение о загрузке
    25. },
    26. onComplete: function(file, response){ // если сервер вернул какой либо ответ
    27. $('#upload').attr('value', 'Добавить ещё фото').show(); /*показываем кнопку добавления файла и меняем надпись*/
    28. $('#status').text(''); // убираем сообщение о загрузке
    29. var puty_foto = jQuery.parseJSON(response); // разбираем полученные данные JSON от сервера
    30. if(puty_foto.foto_mini) // если от сервера получены данные (вывод echo ""; в файле обработчике)
    31. {
    32. // передаём данные в скрытые поля формы
    33. 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="Удалить фото">');}
    34. 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>');}
    35. 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>');}
    36. 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>');}
    37. 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>');}}}}}
    38. if ($('#foto1_mini').val() !== "" && $('#foto2_mini').val() !== "" && $('#foto3_mini').val() !== "" && $('#foto4_mini').val() !== "" && $('#foto5_mini').val() !== "") { $('#upload').hide(); /*прячем кнопку добавления файла*/}
    39. }
    40.  
    41. }
    42. });
    43. var suffixes = ['mini', 'big', 'del'];
    44. function del() {
    45.     var prefix = (/^(foto\d+\_)del$/.exec(this.id))[1];
    46.    
    47.     for (var i in suffixes) {
    48.         var elid = prefix + suffixes[i];
    49.         $('#'+elid).val('');
    50.         //document.getElementById(elid).style.color = 'red';
    51.     }
    52.    
    53. }
    54.  
    55. document.getElementById('foto1_del').addEventListener('click', del);
    56. });
    57. </script>
    Вот сам HTML
    Код (Text):
    1. <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>
    2.                 <input type="hidden" name="foto1_mini" id="foto1_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto1_mini']) , ENT_QUOTES ) ?>">
    3.                 <input type="hidden" name="foto2_mini" id="foto2_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto2_mini']) , ENT_QUOTES ) ?>">
    4.                 <input type="hidden" name="foto3_mini" id="foto3_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto3_mini']) , ENT_QUOTES ) ?>">
    5.                 <input type="hidden" name="foto4_mini" id="foto4_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto4_mini']) , ENT_QUOTES ) ?>">
    6.                 <input type="hidden" name="foto5_mini" id="foto5_mini" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto5_mini']) , ENT_QUOTES ) ?>">
    7.                 <input type="hidden" name="foto1_big" id="foto1_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto1_big']) , ENT_QUOTES ) ?>">
    8.                 <input type="hidden" name="foto2_big" id="foto2_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto2_big']) , ENT_QUOTES ) ?>">
    9.                 <input type="hidden" name="foto3_big" id="foto3_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto3_big']) , ENT_QUOTES ) ?>">
    10.                 <input type="hidden" name="foto4_big" id="foto4_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto4_big']) , ENT_QUOTES ) ?>">
    11.                 <input type="hidden" name="foto5_big" id="foto5_big" value="<?php echo @htmlspecialchars( stripslashes($_POST['foto5_big']) , ENT_QUOTES ) ?>">
     
  23. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну и ты понимаешь этот алгоритм? плюсы-минусы в нем видишь? я вот не люблю такую кашу, но по ссылке прошел - автор исходника тоже тяп ляп учит.
     
  24. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Тебя домен-то не смутил? Поповщина же.
     
  25. segazav

    segazav Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    48
    Симпатии:
    0
    Ну если бы я умел, я бы сам полностью составил этот скрипт.
    Если честно, я вообще не люблю использовать разные чьи то плагины, в них очень сложно разобраться и настроить по своему, но это более подходящее что я нашел

    И кстати когда вставил функцию удаления в свой код, она перестала работать.