Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Как изменить код элемента?

Здравствуйте!
Подскажите, пожалуйста, как сохранить изменение кода элемента.
Проблема в следующем. Я занимаюсь раскруткой группы ВКонтакте, в том числе не совсем правильным методом - с помощью olike.ru. То ли я сам чего-то напортачил, то ли кто-то постарался и теперь как-то использует группу с большим числом подписчиков в каких-то своих целях. Но - при заказе накрутки уникальных посетителей на странице olike каждый раз из ссылки моей группы почему-то автоматически выскакивает club, и всё задание отправляется на несуществующую страницу, а накрутки - в неизвестном направлении. Поменять код элемента я догадался и вставил club на положенное место, но это естественно сохраняется только до перезагрузки страницы. Тех. поддержка olike (поддерживает только тех, а не этих) на мои многочисленные запросы не ответила.
Можно ли как-нибудь самостоятельно исправить?
Извините,если не по адресу.
Ответ: eugene59, с подобными сервисами надо быть аккуратней - это может плачевно закончится... Админы вк тоже не дураки и при высокой активности в группе могут выставить бан или отобрать энное число вступивших подписчиков... Поэтому лучше применяйте старый добрый инвайтинг и стандартные "белые" методы пиара...
Вопрос: Требуется помощь в редактирование кода виджета

Имеется код виджета для сайта. При установки на сайт, виджет появляется справа по середине. Скажите, можно ли внести изменения в код, чтобы он появлялся в нижнем правом углу или слева посередине? Посмотреть можно здесь 
Код виджета:
<script type="text/javascript">window.dload=function(e){if(document.addEventListener){if(typeof window.magictab!='undefined'&&window.magictab.__loaded===true){e()}else{document.addEventListener("mgtLoaded",e,false)}}else if(document.attachEvent){document.attachEvent("mgtLoaded",e)}};(function(c,a){window.magictab=a;var b,d,h,e;b=c.createElement("script");b.type="text/javascript";b.async=!0;b.src=("https:"===c.location.protocol?"https:":"http:")+'//api.magictab.ru/js/v2.0/magictab-1.0.js';d=c.getElementsByTagName("script")[0];d.parentNode.insertBefore(b,d);a._i=[];a.init=function(b,c,f){var g=a;"undefined"!==typeof f?g=a[f]=[]:f="magictab";g.people=g.people||[];g.plugins=g.plugins||[];a._autoload=['alerts','main-widget','post-watcher','post-checkout-widget'];a._i.push([b,c,f])};a.__SV=1.3;a._e=document.createEvent("Event");a._e.initEvent('mgtLoaded', true, true);})(document,window.magictab||[]);magictab.init("a771a39ee1114483fc113e60d7dd8f8d");</script>
Ответ:
Имеется код виджета для сайта. При установки на сайт, виджет появляется справа по середине. Скажите, можно ли внести изменения в код, чтобы он появлялся в нижнем правом углу или слева посередине? Посмотреть можно здесь 
Код виджета:
<script type="text/javascript">window.dload=function(e){if(document.addEventListener){if(typeof window.magictab!='undefined'&&window.magictab.__loaded===true){e()}else{document.addEventListener("mgtLoaded",e,false)}}else if(document.attachEvent){document.attachEvent("mgtLoaded",e)}};(function(c,a){window.magictab=a;var b,d,h,e;b=c.createElement("script");b.type="text/javascript";b.async=!0;b.src=("https:"===c.location.protocol?"https:":"http:")+'//api.magictab.ru/js/v2.0/magictab-1.0.js';d=c.getElementsByTagName("script")[0];d.parentNode.insertBefore(b,d);a._i=[];a.init=function(b,c,f){var g=a;"undefined"!==typeof f?g=a[f]=[]:f="magictab";g.people=g.people||[];g.plugins=g.plugins||[];a._autoload=['alerts','main-widget','post-watcher','post-checkout-widget'];a._i.push([b,c,f])};a.__SV=1.3;a._e=document.createEvent("Event");a._e.initEvent('mgtLoaded', true, true);})(document,window.magictab||[]);magictab.init("a771a39ee1114483fc113e60d7dd8f8d");</script>
Вопрос: Собирание данных из кода

У меня есть код, в который могут добавляться новые блоки.

Код HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<div class="apeend_items">
<div class="items">
<div id="item_block_0" class="item_block active_item_block">
<div class="del_item_block">[X]</div>
<p>
Название:<input name="item_block_name_0" type="text">Комментарий:<input name="item_block_comm_0" type="text">
</p>
<!-- Эти блоки повторяются и генерируются при нажатии на кнопку -->
<div alt="gameid3" class="chosen_item" style="background: rgba(0, 0, 0, 0) url([url]http://solomidcdn.com/images/champions_sprite_75.jpeg?v=1400720489[/url]) repeat scroll 0px -5700px / auto padding-box border-box;">
<div></div>
</div>
<div alt="gameid2" class="chosen_item" style="background: rgba(0, 0, 0, 0) url([url]http://solomidcdn.com/images/champions_sprite_75.jpeg?v=1400720489[/url]) repeat scroll 0px -5700px / auto padding-box border-box;">
<div></div>
</div>
<div alt="gameid1" class="chosen_item" style="background: rgba(0, 0, 0, 0) url([url]http://solomidcdn.com/images/champions_sprite_75.jpeg?v=1400720489[/url]) repeat scroll 0px -9700px / auto padding-box border-box;">
<div></div>
</div>
 
</div>
</div>
</div>
После чего эти данные нужно собрать и отправить. Я договорился что все данные придут в формате массива, в итоге вот как-то так он должен генерироваться:
Код Javascript
1
2
3
4
5
6
7
for (i=0; i<$('.apeend_items>div').length; i+=1) {
submit[i]= [
$(this).attr('id'), 
"item_block_name_"+i+"", //тут типа input с названием первого блока
"item_block_comm_"+i+"", //тут описание, такой же второй инпут
[for (i=0; i<$( ".items>div.item_block" ).length; i+=1) {$(this).attr('alt')})]]; //а это массив в массиве с айди вещей, которые мне нужно собрать
}
Вот я и не понимаю. Самая большая проблема для меня это пролистать все дивы. Почему-то в Jquery нельзя загнать все в массив и пролистать с помощью [1,2,3...], но тогда как? Мне нужно записать в виде submit = array(название, комментарий, array(item1, item2... ));
Id Item находятся в alt. Если что, новый блок будет иметь класс не item_block_0 а item_block_1.

Этот вопрос уже должен был прозвучать, но я его неправильно сформулировал. Теперь тут вся информация что нужна. Я уже запутался тотально...

Буду очень благодарен за помощь!
Ответ: Master_Yi, просто вы так задали вопрос и дали не валидный код, что у меня вся душа перевернулась, и я, не понимая вопроса, просто дал вам валидный код
Вопрос: Форма добавления/редактирования элемента инфоблока iblock.element.add.form

Доброго времени суток!
Существует форма добавления/редактирования элемента инфоблока bitrix:iblock.element.add.form. Добавление нового элемента происходит корректно. Если произвести редактирование созданного элемента, то заполнение полей предыдущими данными не происходит, т.е. все поля пустые.
В адресной строке передается ID редактируемого элемента, но подтягивание данных не происходит.

Существует подобный вопрос .
Как заставить форму подхватывать данные редактируемого элемента?
Подскажите, пожалуйста, как возможно сделать так, чтоб при редактировании элемента поля были заполнены.
Ответ: Форма не заполнялась предыдущими данными из-за некорректной ссылки.
Возможно ли осуществить копирование созданного элемента с помощью данной формы?
Вопрос: XMLHttpRequest - Передача защищенных данных

Здравствуйте.
Нужна помощь.
Как можно сделать, чтобы данные из first_name передавались обработчику в защищенном виде.
Т.е. пользователь не смог бы их изменить при передаче прописать в адресной стоке то-то типа
Куда мне копать?

Скрипт:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script language="javascript">
  function ajaxcl (first_name) {
        var xmlhttp;
        if ( window.XMLHttpRequest ) {
            xmlhttp = new XMLHttpRequest();
        } else {
            xmlhttp = new ActiveXObject ( "Microsoft.XMLHTTP" );
        }
        xmlhttp.onreadystatechange = function () {
            if ( xmlhttp.readyState == 4 ) {
               //тут ответ сервера  
            }
        }
       //куда ушёл запрос
        xmlhttp.open ( "GET", "/auth.php?first_name="+first_name+"&rand="+Math.random(), true );
        xmlhttp.send ();
 
    }
</script>
Обработчик:

PHP
1
2
3
4
5
6
<?php
header("Access-Control-Allow-Origin: http://мойсайт.рф");
$first_name = isset($_GET['first_name']) ? urldecode($_GET['first_name']) : false;
$first_name = mysql_real_escape_string($first_name);
if($first_name){mysql_query ("UPDATE `my_table` SET `first_name` = '$first_name' WHERE id = '1'");}
?>
Ответ: тут главное понять, чем будут отличаться



от

Вопрос: Запрет на редактирование всех элементов на странице, select option, textarea, input text

Помогите пожалуйста, необходимо сделать так чтобы при клике на кнопку сработала функция и все элементы были заблокированы(disabled), а до этого они доступны для ввода текста и выбора(select), есть 3 textarea, 1 select option и 1 input text.
вот примерчик, чтоб облегчить задачу:
Код HTML5
1
2
3
4
5
6
7
8
9
10
11
<form>
<textarea>1</texatrea>
<textarea>2</texatrea>
<textarea>3</texatrea>
<input type="text" value="текст"> 
<select> 
   <option>4</option>
   <option>5</option>
</select>
<input type="submit" value="Заблокировать">
</form>
буду благодарен за помощь
Ответ: Lazy_Den, спасибо еще раз, сейчас поменяю все повторяющиеся на классы

Добавлено через 2 минуты
Lazy_Den, заработало все
Вопрос: Редактирование кода html 1с-битрикс

Достался сайт, где боковое меню сплошь состоит из <h1>...</h1>. То есть каждая страница имеет кучу заголовков, что мешает продвижению.
При попытке редактирования весь сайт рушится. И вообще, стоит только поменять или удалить любой символ, не принадлежащий тегам, как весь сайт выстраивается в столбик. И так везде - в хедере, в футоре, да хоть где - чтобы я не изменил, все рушится. (можно просто поменять <a href=""...>slovo</a> на slovo, как все так же разрушается).
Есть идеи, в чем может быть проблема?

Доп. инфа - редактирование произвожу не через фтп, а в админке сайта.

Добавлено через 48 минут
Проблема решилась случайным образом - при редактировании через фтп, использьзуя notepad (где сохраняется исходная кодировка), все работает исправно. Видимо, админка 1с-битрикс этого не обеспечивает.
Сорян за беспокойство
Ответ: svetogor-ural, судя по симптомам сайт "разрабатывал" "супер-разработчик". Дело не в кодировке и ее сохранении, а том, что там косяков много от "разработчика". Скорее всего полный бардак с незакрытыми тегами.
Вопрос: Почему перезаписываются данные только первого элемента?

Всем привет. Есть магазин с товарными секциями - пример в коде. При добавлении товара в корзину происходит пересчет количества товара и его суммы. Для одного товара все считает хорошо, но как только добавляю второй со своими данными - корзина перезаписывает данные только первого, т.е. в итоговой сумме получается цена одного первого продукта, несмотря на то, что в корзине их больше. Вопрос по сохранению данных корзины и их последующему извлечению. Сохраняю данные в массиве, прохожусь по всем элементам с помощью each но что-то не получается правильно перезаписать.. Условие
if ($(this).find('a').attr('href') == product_name) {..}

как я понял срабатывает для всех товаров в корзине или я не прав?
$('.add_to_cart_button').click(function() {
    var number = $(this).parents('.product-frame ').find(".input-text.qty.text").val();
    var product_name = $(this).parents('.product-frame ').find('.product-section h3 a').attr('href');
    $('body').bind('added_to_cart', function() {
      var arr = [];
      $('#shopping-button .cart_list li').each(function(i) {
        arr[i] = $(this).find("span.quantity").text().match(/\d+(?:\.\d+)?/g);
        if ($(this).find('a').attr('href') == product_name) {
          var html = $(this).find("span.quantity").html();
          html = html.replace(/\d+/, number);
          $(this).find("span.quantity").html(html);
          var quantity = $(this).find("span.quantity").text().match(/\d+(?:\.\d+)?/g);
          var basePrice = "";
          for (var i = 1; i < quantity.length; i++) {
            basePrice += quantity[i];
          }
          $(this).parents('#shopping-button').find(".shopping-button .amount").text((basePrice * number) + " руб.");
        }
      });
      console.log(arr);
    });
  });

<!-- Добавление товара в корзину -->
<div class="product-frame ">
  <div class="content-description">
    <div class="product-section">
      <h3><a href="#">Товар 1</a></h3>
      <table class="description-table">
        <tbody>
          <tr>
            <td class="product-quantity">
              <div class="quantity buttons_added">
                <input type="number" step="1" min="1" max="27" id="num_count" name="quantity" value="1" title="Кол." class="input-text qty text" size="4">
                <input type="button" value="+1" id="button_plus" class="plus">
                <input type="button" value="-1" id="button_minus" class="minus">
              </div>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
  <div class="process-section">
    <div class="price"><span class="amount" baseprice="360000">1.080.000 руб.</span>
    </div>
    <a href="#" rel="nofollow" data-product_id="3295" data-quantity="1" class="button add_to_cart_button">Купить</a> 
  </div>
</div>

<!-- Сама корзина -->
<li id="shopping-button">
<a class="shopping-button" href="#">
	<b><span class="amount">360.000 руб.</span></b>
</a>
  <ul class="cart_list ">
    <li>
      <a href="#">
        <img width="60" height="60" src="#" class="attachment-60x60 wp-post-image" alt="item-1">
      </a>
      <div class="product-text">
        <div class="product-name">Товар 1</div>
        <span class="quantity">3 × <span class="amount">360.000&nbsp;руб.</span></span>
      </div>
    </li>
    <li>
      <a href="#">
        <img width="60" height="60" src="#" class="attachment-60x60 wp-post-image" alt="item-2">
      </a>
      <div class="product-text">
        <div class="product-name">тОВАР 2</div>
        <span class="quantity">3 × <span class="amount">150.000&nbsp;руб.</span></span>
      </div>
    </li>
  </ul>
  <!-- end product list -->
</li>
Ответ: ligisayan, изменить количество в одном из инпутов - нажать купить под ним
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
$(function() {
    var product_name, number;
    $("body").on("added_to_cart", function() {
        var arr = [];
        $("#shopping-button .cart_list li").each(function(i) {
            var span = $(this).find("span.quantity");
            arr[i] = span.text().match(/\d+(?:\.\d+)?/g);
            if ($(this).find("a").attr("href") == product_name) {
                arr[i][0] = number;
                span.html(arr[i][0] + "\u00d7 <span class='amount'>" + arr[i][1] + "&nbsp;\u0440\u0443\u0431.</span>");
                $(this).parents("#shopping-button").find(".shopping-button .amount").text((arr[i][0] * arr[i][1]).toFixed(3) + " руб.")
            }
        })
    });
    $(".add_to_cart_button").click(function(event) {
        event.preventDefault();
        number = $(this).parents(".product-frame ").find(".input-text.qty.text").val();
        product_name = $(this).parents(".product-frame ").find(".product-section h3 a").attr("href");

        $("body").trigger("added_to_cart")
    })
});


  </script>
</head>

<body>  <!-- Добавление товара в корзину -->
<div class="product-frame ">
  <div class="content-description">
    <div class="product-section">
      <h3><a href="Товар 1">Товар 1</a></h3>
      <table class="description-table">
        <tbody>
          <tr>
            <td class="product-quantity">
              <div class="quantity buttons_added">
                <input type="number" step="1" min="1" max="27" id="num_count" name="quantity" value="1" title="Кол." class="input-text qty text" size="4">
                <input type="button" value="+1" id="button_plus" class="plus">
                <input type="button" value="-1" id="button_minus" class="minus">
              </div>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
  <div class="process-section">
    <div class="price"><span class="amount" baseprice="360000">1.080.000 руб.</span>
    </div>
    <a href="#" rel="nofollow" data-product_id="3295" data-quantity="1" class="button add_to_cart_button">Купить</a>
  </div>
</div>
<div class="product-frame ">
  <div class="content-description">
    <div class="product-section">
      <h3><a href="Товар 2">Товар 2</a></h3>
      <table class="description-table">
        <tbody>
          <tr>
            <td class="product-quantity">
              <div class="quantity buttons_added">
                <input type="number" step="1" min="1" max="27" id="num_count" name="quantity" value="1" title="Кол." class="input-text qty text" size="4">
                <input type="button" value="+1" id="button_plus" class="plus">
                <input type="button" value="-1" id="button_minus" class="minus">
              </div>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
  <div class="process-section">
    <div class="price"><span class="amount" baseprice="360000">1.080.000 руб.</span>
    </div>
    <a href="#" rel="nofollow" data-product_id="3295" data-quantity="1" class="button add_to_cart_button">Купить</a>
  </div>
</div>
<!-- Сама корзина -->
<li id="shopping-button">
  <a class="shopping-button" href="#">
	<b><span class="amount">360.000 руб.</span></b>
</a>
  <ul class="cart_list ">
    <li>
      <a href="Товар 1">
        <img width="60" height="60" src="#" class="attachment-60x60 wp-post-image" alt="item-1">
      </a>
      <div class="product-text">
        <div class="product-name">Товар 1</div>
        <span class="quantity">3 × <span class="amount">360.000&nbsp;руб.</span></span>
      </div>
    </li>
    <li>
      <a href="Товар 2">
        <img width="60" height="60" src="#" class="attachment-60x60 wp-post-image" alt="item-2">
      </a>
      <div class="product-text">
        <div class="product-name">Товар 2</div>
        <span class="quantity">3 × <span class="amount">150.000&nbsp;руб.</span></span>
      </div>
    </li>
  </ul>
  <!-- end product list -->
</li>



</body>

</html>
Вопрос: Сортировка элементов с сохранением индексов в базе данных

Всем привет.
На сайте есть список элементов, который можно сортировать. Использую jquery-ui sortable.
Каким образом можно правильно организовать в базе данных сохранение каждого элемента с его индексом? Логика не совсем понятна.
Например, есть 10 элементов. Каждый добавляемый элемент имеет индекс "последний максимальный индекс + 1".
Но если из этого списка удалить 5 элементов и оставить последний (десятый), то заново добавленный будет иметь индекс 11 и добавляться он будет в конец списка всегда.
Неужели придется отдельно хранить элементы и отдельно сериализованный массив с порядком сортировки?
Ответ: Решил.

Бэкенду отправляю список элементов так:
Javascript
1
$(this).sortable('toArray', {attribute: 'data-id'})
А элементы выглядят так:
HTML5
1
2
3
4
5
<ul id="#sortable">
    <li data-id="5">Item 1</li>
    <li data-id="6">Item 2</li>
    <li data-id="9">Item 3</li>
</ul>
5,6,9 - это ID элементов в базе данных.
В результате приходит на бэкенд массивом так:
PHP
1
[5,6,9]
Соответственно, ключ элемента является индексом
Обрабатываю так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$elements = Elements::where('user_id',$user_id)->get();
foreach($request->input('sort') as $k => $v)
    $rules['sort.'.$k] = 'required|integer';
$validation = Validator::make($request->only('sort'), $rules);
if($validation->passes()) {
    foreach($elements as $k => $v) {
        $sort_id = array_search($v['id'], $request->input('sort'));
        if($sort_id && $v['sort'] != $sort_id) {
            $v['sort'] = $sort_id;
            $v->save();
        }
    }
} else {
    abort(400);
}
Вопрос: Как заставить работать плагин с динамически добавленными элементами?

Привет! Есть сайт, на сайте подключён плагин Justified Gallery, который создаёт горизонтальную сетку масонри и заполняет всю страницу картинками так. Под картинками в самом конце расположена кнопка "Показать ещё", при нажатии на которую аяксом подгружаются ещё картинки, с первой страницей всё работает, но при подгрузки новых картинок происходит вполне логичная вещь - плагин их не выравнивает, потому что при загрузке дерева dom этих элементов не было. Но это я так сам догадываюсь, может я и не прав. Как быть? Что делать? Сижу над этой проблемой уже 3 дня. Пробовал .on, но какой тип обработчик указывать? Ведь read - не поддерживается в нём (вставлял 'load' -реакции ноль), пробовал запускать плагин повторно через ajaxSetup, где вызывал эту функцию в complete - тоже ноль. Как быть? Помогите! А то уже крыша едет от этой фигни.

Аякс запрос:
$.ajax({
			url:ajaxurl, // обработчик
			data:data, // данные
			type:'POST', // тип запроса
			success:function(data){
				if( data ) { 
					$('.image').append(data); // вставляем новые посты
					current_page++; // увеличиваем номер страницы на единицу
					if (current_page == max_pages) $("#true_loadmore").remove(); // если последняя страница, удаляем кнопку
				} else {
					$('#true_loadmore').remove(); // если мы дошли до последней страницы постов, скроем кнопку
                    
				}
			}
		});


Подключение плагина на странице:

$('.image').justifiedGallery({
                    rowHeight : 300,
                    margins : 5,
                    captions: false
                });


Html-код элемента где выводятся картинки (с первой порцией картинок, к которым подгружаются другие):

<div class="image justified-gallery" style="height: 450px;">
                                                                 
                                        <a href="#content-pupop" data-popup="44" class="item" style="width: 755px; height: 450px; top: 0px; left: 0px; opacity: 1;"><img src="http://demo.local/wp-content/uploads/2016/03/photo-7_b.jpg" alt="" style="width: 755px; height: 500px; margin-left: -377.5px; margin-top: -250px;"></a>
                                        
                                                                        
                                        <a href="#content-pupop" data-popup="41" class="item" style="width: 332px; height: 450px; top: 0px; left: 760px; opacity: 1;"><img src="http://demo.local/wp-content/uploads/2016/03/photo-5.jpg" alt="" style="width: 332px; height: 501px; margin-left: -166px; margin-top: -250.5px;"></a>
                                        
                                                                        
                                        <a href="#content-pupop" data-popup="39" class="item" style="width: 330px; height: 450px; top: 0px; left: 1097px; opacity: 1;"><img src="http://demo.local/wp-content/uploads/2016/03/photo-4.jpg" alt="" style="width: 330px; height: 498px; margin-left: -165px; margin-top: -249px;"></a>
                                        
</div>

<div id="true_loadmore">Загрузить ещё</div>
Ответ: А что ещё нужно добавить? выполнение ajax происходит в отдельном файле. Файл подключён к странице:
Код:
<script type="text/javascript" src="<?php bloginfo('template_directory');?>/loadmore.js"></script>
Вот и выводит в консоли, что эта функция неизвестна.