[JavaScript, AJAX] Задай вопрос, получи ответ

Discussion in 'Javascript' started by Kaimi, 7 May 2015.

  1. Octavian

    Octavian Elder - Старейшина

    Joined:
    8 Jul 2015
    Messages:
    506
    Likes Received:
    101
    Reputations:
    25
    Нашол такои скрипт подсчета товаров в корзине
    http://jsfiddle.net/7z9vhhew/
    Когда делаю инпутов больше он считает и берет data-price только первого исправите пожалуста !
     
  2. kranx

    kranx Member

    Joined:
    19 Feb 2017
    Messages:
    17
    Likes Received:
    7
    Reputations:
    0
    тебе нужно что-то вроде этого:
    Code:
            var sum = 0;
            $(".counter").each(function(){
                var count = parseInt($(this).getAttribute('data-count'), 10);
                var price = parseInt($(this).getAttribute('data-price'), 10);
                sum += price*count;
            });
    
     
  3. zemsky

    zemsky New Member

    Joined:
    3 Nov 2016
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Добрый день.

    С фронтэндом не дружу, посему прошу сильно не пинать.

    Возникла необходимость встроить страницу подачи объявления http://irr.by/advertSubmission/step1/ в свой сайт (необходима структура каталога).

    Но javascript у сохраненной страницы не отрабатывает.

    Может кто подскажет в чем причина?
     
  4. kranx

    kranx Member

    Joined:
    19 Feb 2017
    Messages:
    17
    Likes Received:
    7
    Reputations:
    0
    если тебе надо просто скопировать ту страницу, то там много будет работы. нужно будет найти скрипт который отправляет данные на сервер, и подстроить его под себя. потом нужно будет CSS для той страницы подстроить под себя чтобы не было конфликтов с твоим сайтом. и уж потом бэкэнд сделать.
    Я думаю проще будет создать свой форм с нуля, который отправляет данные в php скрипт.
    Вот тут есть пару примеров:
    https://v4-alpha.getbootstrap.com/components/forms/
    И чтобы не нужно было использовать Javascript, отправь данные сразу через форм:
    Code:
    <form action="server.php" method="post">
    ...
    </form>
    Где server.php твой скрипт который обрабатывает данные.
    С php я думаю у тебя не будет проблем принять данные
     
  5. zemsky

    zemsky New Member

    Joined:
    3 Nov 2016
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    kranx, это все понятно, что ты предлагаешь, но я уже так пробовал банально создать свою форму по аналогии для другого каталога. Результат: 3 дня рутинной работы - менее 5% от необходимого объема каталога. Плюнул, покопался в JS (в меру своих знаний), встроил сохраненную страницу в свой сайт, подправил CSS. API запросы браузера встроенной страницы переадресовал своему бэкэнд-скрипту, который уже якобы от имени оригинального хоста делал запрос и возвращал результат встроенной странице. Таким образом все получилось.

    С этим каталогом придется, видимо, разбираться дольше..
     
    #45 zemsky, 21 Feb 2017
    Last edited: 21 Feb 2017
  6. helpmetks

    helpmetks New Member

    Joined:
    18 Feb 2017
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    I will pay BTC if anyone help me decipher passwords fe9a0c67bbd36e4a6fe4c30e06df1334: 9b
     
  7. chatanti

    chatanti Member

    Joined:
    13 Jul 2011
    Messages:
    30
    Likes Received:
    16
    Reputations:
    0
    Привет
    Я контролирую сайт. Я изменил поведение сайта: при совершении определенного действия я подгрузил в ифрейме 3-й домен, вместо обычного редиректа на 3-й домен(как было раньше).
    Все выглядит красиво и естесственно.
    Я могу получить значения инпут полей, которые забьют в ифрейм из основоного окна сайта?
    Общаться через postmessage между основным окном и ифреймом научился.
    При попытках получить данные из ДОМа ифрейма, неминуемо возникает что-то вроде
    " Blocked a frame with origin "http://aaaa.net" from accessing a cross-origin frame."
    Подскажите что можно попробовать, потратил на проблему уже много часов. Может быть какие-то JS библиотеки можно подключить и заюзать или при загрузке html в iframe модифицировать JS файлы или добавить свой JS скрипт.
    HALP!
     
    #47 chatanti, 26 Feb 2017
    Last edited: 27 Feb 2017
  8. bologer

    bologer Member

    Joined:
    25 Nov 2016
    Messages:
    62
    Likes Received:
    18
    Reputations:
    3
    1. Нельзя получить напрямую данный из iframe с JS.
    2. Нельзя делать GET/POST и тд запросы с AJAX на другие домены, если у них (со стороны сайта, который ты iframe'ишь) не указаны header'ы.

    Пример header'a:

    Code:
    header('Content-type: text/html');
    header('Access-Control-Allow-Origin: *');
    Этим header'ом ты даешь доступ для запроса с любого сайта. Но чтобы прописать заголовки - тебе нужно иметь доступ к исходному коду сайта, который ты вписывал в iframe.

    Еще один вариант - это воспользоваться библиотекой PhantomJS. Я ее как раз использую для подобных вещей. Она может скрапить, отправки формы и др. подобные операции. Я недавно писал запись о том, как с помощью нее, например, скрапить топ новости с главной Яндекса, посмотри, может поможет. Но для этого тебе понадобиться свой сервер, если ты хочешь весь процесс отправки формы автоматизировать. Вообщем я там все подробнее описываю, почитаю, может воспользуешься таким способом, потому что я другого не вижу.
     
  9. bologer

    bologer Member

    Joined:
    25 Nov 2016
    Messages:
    62
    Likes Received:
    18
    Reputations:
    3
    Проще нанять full-stack разработчика, который все для тебя сделает на фрейвфорке (если ты собираешься заниматься этим серъзно). Иначе можно все коряво написать (так как ты собираешься, как я понимаю, все по кусочкам собирать) и потом жалеть, чтобы придется потратить еще кучу денег на исправление багов (если дело пойдет).
     
  10. warlock777

    warlock777 New Member

    Joined:
    24 Feb 2017
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Всем привет! Помогите с JS-кодом. Мне необходимо сделать обработку нажатия на рекламный баннер. Нужно чтобы когда пользователь кликает по баннеру, то его перекидывало в открывшуюся вкладку сайта рекламы, а в той вкладке, где он был, открывалась другая страница моего сайта (в данном случае wot.php).
    Я написал такой код:

    Code:
    <p id='toClick'>
    <a href='https: //партнерка .ru?ref=123' onclick="this.target='_blank';" style='background:url("https: //партнерка .ru/img/user-banner-1.png");width:468px;height:60px;display:block;'></a>
    </p>
    
    <script type="text/javascript">
    $('#toClick').click(function(){
    window.location="wot.php"; 
    });
    </script>
    
    Он работает как надо, но только для баннеров со всякими реферальными ссылками, а если я вставляю баннер формата типа
    <script type="text/javascript" src="//ads. партнерка .net/317816/1/2/"></script> то он не пашет, а мне как раз надо чтоб с таким баннером работало. Как это можно осуществить?

    P.S. Я в JavaScript пока еще полный нуб, поэтому если можно, то поподробнее пожалуйста:)
     
  11. bologer

    bologer Member

    Joined:
    25 Nov 2016
    Messages:
    62
    Likes Received:
    18
    Reputations:
    3
    Попробуй так:

    HTML:
    <p id='toClick'>
        <a href='https: //партнерка .ru?ref=123' target="_blank" onclick="window.location='wot.php'" style='background:url("https: //партнерка .ru/img/user-banner-1.png");width:468px;height:60px;display:block;'></a>
    </p>
    
     
  12. warlock777

    warlock777 New Member

    Joined:
    24 Feb 2017
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Нее, братан, ты не понял. Ты модифицировал код баннера, который я указал сверху. С такими баннерами все и так работает. Проблем заключается с кликами по JS-баннерам, которые имеют примерно следующий вид:

    Code:
    <script type="text/javascript" src="//ads. партнерка .net/317816/1/2/"></script>
    
    Я вставляю скрипт такого баннера в свой код. Кликаю. Перекидывает на страницу рекламы, а моя функция с командой открытия другой страницы сайта не срабатывает
     
  13. bologer

    bologer Member

    Joined:
    25 Nov 2016
    Messages:
    62
    Likes Received:
    18
    Reputations:
    3
    Без понятия о чем ты. Нужно нормальное описание с примером(-ами). Возможно твой клик не работает из-за того, что у них клик стоит на родителе элемента, а у тебя на дочернем, но это не точно.

    И скрипт который ты указал — это лишь его добавление на страницу. Самого скрипта я не вижу, поэтому и помочь не могу. Нужно полноценное описание проблемы, сейчас информации очень мало.
     
  14. Octavian

    Octavian Elder - Старейшина

    Joined:
    8 Jul 2015
    Messages:
    506
    Likes Received:
    101
    Reputations:
    25
    Такои код
    Code:
    $(function() {
        var $research = $('.research');
    
        $research.find("tr").eq(0).show();
       
        $research.find(".accordion").click(function(){
            $research.find('.accordion').not(this).siblings().fadeOut(0);
            $(this).siblings().fadeToggle(500);
        }).eq(0).trigger('click');
    });
    Все работает но почемута при обновление страницы он первыи .acordion всегда скрывает медлено
     
  15. bologer

    bologer Member

    Joined:
    25 Nov 2016
    Messages:
    62
    Likes Received:
    18
    Reputations:
    3
    Попробуйте заменить 500 на 100, чтобы быстрее анимацию проходила.
     
  16. Octavian

    Octavian Elder - Старейшина

    Joined:
    8 Jul 2015
    Messages:
    506
    Likes Received:
    101
    Reputations:
    25
    Я етим играл ся тут фадеоут мешает первому блоку закрыватся
     
  17. bologer

    bologer Member

    Joined:
    25 Nov 2016
    Messages:
    62
    Likes Received:
    18
    Reputations:
    3
    Напиши код без всех твои доработок и "игрался". Чтобы исключить некоторые строки и тд
     
  18. kranx

    kranx Member

    Joined:
    19 Feb 2017
    Messages:
    17
    Likes Received:
    7
    Reputations:
    0
    В броузере многое что происходит когда интерпретируется твой код, какого хрена ты сначала показываешь все элементы, потом скрываешь их в коде?
    Code:
    .eq(0).trigger('click');
    убери это нахер, добавь в каждом элементе accodrion, кроме первого, <div> с style="display:none"
    тогда сразу будет виден лишь первый accordion, и ничего не будет закрываться медленно
     
  19. Octavian

    Octavian Elder - Старейшина

    Joined:
    8 Jul 2015
    Messages:
    506
    Likes Received:
    101
    Reputations:
    25
    тогда сразу будет виден лишь первый accordion Мне какраз это и не надо
    Все скрыть нужно
     
  20. kranx

    kranx Member

    Joined:
    19 Feb 2017
    Messages:
    17
    Likes Received:
    7
    Reputations:
    0
    то есть в дизайне ты ноль. я понимаю, поговори с веб дизайнером, любым, он тебе все объяснит. ни разу я за все свои годы не видел вебсайт который при загрузке показывает все, и сразу же скрывает практически все. ты протестировал код, понял что так нельзя, теперь сделай так как надо.
     
Loading...